pwny

0.4.0 • Public • Published

pwny

Build Status

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"]
}

Readme

Keywords

none

Package Sidebar

Install

npm i pwny

Weekly Downloads

75

Version

0.4.0

License

MIT

Unpacked Size

6.6 kB

Total Files

13

Last publish

Collaborators

  • anthonator