Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anthonator/pwny
Easy Express configuration
https://github.com/anthonator/pwny
Last synced: 6 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 (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2018-06-28T16:25:32.000Z (over 6 years ago)
- Last Synced: 2024-11-02T04:33:23.911Z (12 days ago)
- Language: JavaScript
- Homepage:
- Size: 13.7 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pwny
[![Build Status](https://travis-ci.org/anthonator/pwny.svg?branch=master)](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"]
}
```