0.0.1 • Published 4 years ago

koa-cond v0.0.1

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

koa-cond

Conditionally run middleware in Koa 2

Install

npm install --save koa-cond

API

  • condition a function which receives koa context and returns boolean
  • ifMiddleware middleware to run if condition returns true
  • elseMiddleware (optional) middleware to run if condition returns false

Usage

const Koa = require('koa'),
    bodyParser = require('koa-bodyparser'),
    rawBody = require('koa-rawbody'),
    cond = require('koa-cond');

const app = Koa();

const rawBody = (ctx, next) => {
    /* capture request as buffer */
    ctx.request.rawBody = await new Promise((resolve) => {
        const chunks = [];
        ctx.request.on('data', chunk => {
            chunks.push(chunk);
        });
        ctx.req.on('end', () => {
            resolve(Buffer.concat(chunks));
        });
    });
}

app.use(cond(
    (ctx) => ctx.request.is('application/octet-stream'),
    rawBody,
    bodyParser
));

// routes, etc.

app.listen(3000);

License

MIT