koa-connection-limit

2.1.0 • Public • Published

connection limit middlware for koa

Build Status Coverage Status npm Github Releases

Installation

$ npm install koa-connection-limit

API

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

  • mid mid connection limit count
  • high high connection limit count
  • throwError when true or undefined, the connection count reach high limit count, it will throw error
  • pass if the function return true, the request will be ingore of limit
  • err the 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

Package Sidebar

Install

npm i koa-connection-limit

Weekly Downloads

1

Version

2.1.0

License

MIT

Last publish

Collaborators

  • tree.xie