https://github.com/anthonator/pwny
Easy Express configuration
https://github.com/anthonator/pwny
Last synced: 8 days ago
JSON representation
Easy Express configuration
- Host: GitHub
- URL: https://github.com/anthonator/pwny
- Owner: anthonator
- License: mit
- Created: 2014-12-27T05:37:06.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2018-06-28T16:25:32.000Z (about 8 years ago)
- Last Synced: 2025-10-26T10:34:58.842Z (8 months ago)
- Language: JavaScript
- Homepage:
- Size: 13.7 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pwny
[](https://travis-ci.org/anthonator/pwny)
Pwny (pronounced pony) helps makes your Express apps modular and maintainable.
## Installation
```bash
$ npm install pwny
```
## Using pwny
Rather than this moderate mess:
```js
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**
```js
var express = require('express'),
pwny = require('pwny');
var app = express();
pwny(app, {});
app.listen(process.env.PORT || 1337);
```
**config/initializers/bodyParser.js**
```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**
```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.
```js
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.
```js
pwny(app, { order: ['morgan', 'bodyParser'] });
```
Note that by specifying an order Pwny will only load specified files.
```js
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.
```json
{
"configPath": "config/middleware",
"order": ["morgan", "bodyParser"]
}
```