Koa with superpowers! Effortless clustering, CLI logging, response time & colors with Koa.
Install Koa Power with npm:
npm install --save koa-power
Minimal example - examples/minimal.js
const Power = require('koa-power');
const {log} = Power;
const main = app => {
app.listen(80, () => log(`App listening on port ${'80'.green}.`));
};
Power.load(main);
Extended Example - examples/extended.js
const Power = require('koa-power');
const {log} = Power;
let options = {
appName: 'Lorem Ipsum Dolor Sit Amet',
appNameColor: 'rainbow',
mid: [], // Koa middleware array - e.g. [ compress(), bodyParser() ]
numWorkers: 3,
enableLog: true
};
const main = app => {
app.use(ctx => {
ctx.status = 200;
ctx.body = 'Hello, world!';
});
app.listen(80, () => log(`App listening on port ${'80'.green}.`));
};
Power.load(main, options);
In production, usage of pm2 to run your Koa Power app is strongly recommended.
Power options you can use in Power.load(main, options);
Option | Default Value | What it does |
---|---|---|
appName | 'Koa Power App' | Sets the app name |
appNameColor | 'italy' | Sets the app name color |
mid | [] | Array of koa middleware |
numWorkers | 2 | Number of workers |
locale | 'en' | moment locale |
enableLog | false | Enable logging to file |
logFileName | appDirectory + '/power.log' | Log filename |
afterFork | () => {} | Callback after fork or re-fork |
Require Koa Power this way:
const Power = require('koa-power');
Now, the exported elements are:
const {load, log, italy, space, name} = Power;
Let's see them in detail:
Element | What it does | Proto |
---|---|---|
load | Powers Koa | load(worker, options) |
log | Power logs to console | log(text) |
italy | Colors text as Italian flag | italy(text) / text.italy |
space | Spaces text in a row | space(text, width) |
name | Changes the worker name | name(text) |
Power options you can use in load(main, options);
Option | Default Value | What it does |
---|---|---|
appName | 'Koa Power App' | Sets the app name |
appNameColor | 'italy' | Sets the app name color |
mid | [] | Array of koa middleware |
numWorkers | 2 | Number of workers |
locale | 'en' | moment locale |
enableLog | false | Enable logging to file |
logFileName | appDirectory + '/power.log' | Log filename |
afterFork | () => {} | Callback after fork or re-fork |
Notice: this package uses Colors internally, which extends the String prototype.
Feel free to open an Issue or send me a direct message.
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Daniele Molinari - Sadkit
This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details.