Powerstone
Powerstone is an MVC style, ES6 friendly application framework for building data intensive, distributed applications.
It was inspired by Keystone's simplicity in setup, Playframework's configuration flexibility and overall a desire to write less code when building node apps.
What is provides:
- Route configuration framework.
- Tasks system for boot time jobs.
- Framework for managing and pooling connections.
- Static configuration files.
- Query framework for more modular database requests.
What it does not provide:
- Automatic Admin UI (yet)
- ORM/ODM - bring your own and
Concepts
Deployment
Powerstone is targeted at apps that deploy to environments like Heroku or Dokku.
Routing
Currently it uses express for its http framework but there are plans to support restify as well.
ES6 Classes
Powerstone apps are written preferably in ES6 because of the new class
syntax. You may need
a transpiler, babel works nicely.
Directory Layout
A powerstone app has the following directory layout:
.├── routes│ └── users.json├── conf│ ├── conf.json│ └── connectors.js├── controllers│ └── UserController.js├── middleware│ └── isAuthenticated.js├── models│ └── User.js├── queries│ ├── getOneUser.js│ └── getUsersWithNameLike.js├── tasks│ └── CreateUserTask.js├── views │ └── index.html└── apps ├── reports │ ├── routes │ │ └── accounting.json │ ├── controllers │ │ └── AccountingReportController.js │ ├── middleware │ │ └── isAccountingUser.js │ ├── models │ │ └── User.js │ ├── queries │ │ ├── getOneUser.js │ │ └── getUsersWithNameLike.js │ ├── tasks │ │ └── CreateUserTask.js │ ├── views │ └── index.html │ └── monitor