2.1.0 • Published 9 years ago
koa-connection-limit v2.1.0
connection limit middlware for koa
Installation
$ npm install koa-connection-limitAPI
const koa = require('koa');
const koaConnectionLimit = require('koa-connection-limit');
const app = koa();
app.use(koaConnectionLimit({
mid: 5,
high: 10,
throwError: false,
pass: (ctx) => {
return false;
}
}, function (status) {
// status: low, mid, high
console.info(status);
}));Options
midmid connection limit counthighhigh connection limit countthrowErrorwhentrueorundefined, the connection count reach high limit count, it will throw errorpassif the function return true, the request will be ingore of limiterrthe custom define error, optional
onChange
when status change, the function will be triggered
Example
'use strict';
const Koa = require('koa');
const app = new Koa();
const koaConnectionLimit = require('koa-connection-limit');
// logger
app.use((ctx, next) => {
const start = new Date;
return next().then(() => {
const ms = new Date - start;
console.log(`${ctx.method} ${ctx.url} - ${ms}ms`);
});
});
app.use(koaConnectionLimit({
high: 2,
mid: 1,
throwError: false,
pass: (ctx) => {
return ctx.url === '/no-limit';
},
}, function changeStatus(status) {
console.info(status);
}));
app.use((ctx, next) => {
const delay = new Promise(function(resolve, reject) {
setTimeout(resolve, 3000);
});
return delay.then(next);
});
// response
app.use(ctx => {
ctx.body = 'Hello World';
});
app.listen(3000);License
MIT