node package manager
Loosely couple your services. Use Orgs to version and reuse your code. Create a free org »

powerstone

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