pwny
v0.4.0
Published
Module loader for Express
Downloads
19
Readme
pwny
Pwny (pronounced pony) helps makes your Express apps modular and maintainable.
Installation
$ npm install pwny
Using pwny
Rather than this moderate mess:
var bodyParser = require('body-parser'),
express = require('express'),
morgan = require('morgan');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
morgan.token('type', function(req, res){ req.headers['content-type']; });
app.use(morgan('dev'));
app.listen(process.env.PORT || 1337);
You can clean things up using Pwny:
app.js
var express = require('express'),
pwny = require('pwny');
var app = express();
pwny(app, {});
app.listen(process.env.PORT || 1337);
config/initializers/bodyParser.js
var bodyParser = require('body-parser');
module.exports = function(app, config) {
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
};
config/initializers/morgan.js
var morgan = require('morgan')
module.exports = function(app, config) {
morgan.token('type', function(req, res){ req.headers['content-type']; });
app.use(morgan('dev'));
};
As you can see, Pwny allows you to keep your Express modules sparkly clean and logically separated.
Configuration
You can tell Pwny where to look by passing a path to the configPath
option.
pwny(app, { configPath: 'config/middleware' });
Sometimes order matters. To specify an order in which your config files load you can pass in an order
array.
pwny(app, { order: ['morgan', 'bodyParser'] });
Note that by specifying an order Pwny will only load specified files.
pwny(app, { order: ['morgan'] }); // will not load bodyParser
.pwnyrc
You can also configure Pwny by adding a JSON .pwnyrc
file to your app's root directory.
{
"configPath": "config/middleware",
"order": ["morgan", "bodyParser"]
}