Package detail

koa-middlewares

cnpm390MIT6.0.0

easy way to require some useful koa middlewares

koa, middlewares, session, render

readme

koa-middlewares

NPM version build status David deps Known Vulnerabilities npm download

easy way to use some small but useful koa middlewares.

PRs are welcome, but only for those small and general middlewares.

install

npm install koa-middlewares --save

middlewares

see exports

Usage


var koa = require('koa');
var middlewares = require('koa-middlewares');

var app = koa();

app.use(middlewares.bodyParser());
app.use(middlewares.router(app));
app.use(middlewares.conditional());
app.use(middlewares.etag());
app.use(middlewares.compress());
middlewares.csrf(app);

app.use(function *() {
  this.body = 'hello koa-middlewares';
});

app.listen(7001);

Middlewares Quick Guide

  • koa-bodyparser: post body parser, for application/json and application/x-www-form-urlencoded.
app.use(middlewares.bodyParser({
  limit: '10mb'
}));

app.use(function *(next) {
  var postBody = this.request.body;
});
  • koa-csrf: CSRF tokens.
middlewares.csrf(app);
app.use(function *checkCsrf(next) {
  if (this.method === 'GET' ||
      this.method === 'HEAD' ||
      this.method === 'OPTIONS') {
    return yield *next;
  }

  this.assertCsrf();
  yield next;
});
  • koa-ejs: ejs view render middleware. support all feature of ejs.
middlewares.render(app, {
  root: path.join(__dirname, 'view')
});

app.use(function *() {
  yield this.render('page.html', {foo: 'bar'});
});
  • koa-etag: ETag support for Koa responses.
  • koa-conditional-get: HTTP response freshness testing middleware base on node-fresh. use it upstream from etag.
app.use(middlewares.conditional());
app.use(middlewares.etag());
  • koa-favicon: Bounce favicon requests with a 404.
app.use(middlewares.favicon());
  • koa-safe-jsonp: A safe jsonp plugins for koa.
middlewares.jsonp(app);

app.use(function* () {
  this.jsonp = {foo: 'bar'};
});
  • koa-logger: Development style logger.
app.use(middlewares.logger());
  • koa-session: cookie base session.
app.use(middlewares.cookieSession());
  • koa-generic-session: A session like connect with memory, has friendly APIs for work with other Stores such as redis, mongo.
  • koa-redis: Work togather with koa-generic-session, provide a redis store from koa-sess.
app.use(middlewares.session({
  store: middlewares.RedisStore(),
  defer: true
}));

app.use(function *() {
  var session = yield this.session;
  session.foo = 'bar';
  this.body = this.session.foo;
});
  • koa-router: Provide express-style routing using app.get, app.put, app.post.
app.use(middlewares.router(app));
app.get('/', function *() {
  this.body = 'Hello koa-router';
});
  • koa-resource-router: RESTful resource routing for koa.
var users = new middlewares.Resource('users');
app.use(users.middleware());

app.get('/users', function *() {
  this.body = [{name: 'Lee'}, {name: 'Han'}];
});
  • koa-rewrite: URL rewrite middleware.
app.use(middlewares.rewrite('/js/*', '/public/assets/js/$1'));
  • koa-rt: Log response time, support custom with microtime.
var microtime = require('microtime');
app.use(middlewares.rt({
  timer: microtime
}));
  • koa-static-cache: Static file serving from memory.
app.use(middlewares.staticCache(path.join(__dirname, 'public'), {
  buffer: true,
  maxAge: 60 * 60 * 24 * 7,
  dir: path.join(rootdir, 'public')
}));
  • koa-compress: Compress middleware for Koa, support gzip and deflate
var app = koa()
app.use(compress({
  threshold: 2048,
  flush: require('zlib').Z_SYNC_FLUSH
}))
  • koa-onerror: Error handler
var app = koa()
onerror(app);

License

MIT

changelog

6.0.0 / 2016-07-04

  • deps: upgrade koa-onerror to 2.0.0 (#9)

5.0.0 / 2016-04-11

  • deps: update all dependencies

4.1.0 / 2015-08-15

  • bump dependencies

4.0.0 / 2015-06-06

  • bump dependencies: koa-router@5

3.1.0 / 2015-05-09

  • bump: koa-bodyparser

3.0.1 / 2015-05-02

  • bump bodyparser

3.0.0 / 2015-04-28

  • koa-router and koa-ejs major version bump

2.1.0 / 2015-01-10

  • bump depenencies

2.0.0 / 2014-12-13

  • bump koa-session

1.7.0 / 2014-11-27

  • bump koa-bodyparser
  • bump koa-redis and koa-generic-session

1.6.0 / 2014-11-16

  • bump koa-router and koa-static-cache

1.5.0 / 2014-11-07

  • bump koa-bodyparser, remove bluebird

1.4.2 / 2014-11-04

  • refine
  • bump bodyparser, router

1.4.1 / 2014-10-07

  • bump static-cache and favicon

1.4.0 / 2014-09-15

  • bump koa-router to ~3.4.0
  • add bluebird to dependencies

1.3.0 / 2014-09-11

  • bump dependencies

1.2.0 / 2014-07-18

  • use koa-safe-jsonp replace koa-jsonp
  • bump dependencies

1.1.0 / 2014-07-07

  • bump dependencies

1.0.2 / 2014-07-01

  • fix dependencies

1.0.1 / 2014-07-01

  • add onerror

1.0.0 / 2014-06-29

  • replace koa-sess with koa-generic-session
  • Merge pull request #4 from mtakuya/fix-readme.md
  • Fix typo in README.md * middewares to middlewares

0.2.1 / 2014-05-25

  • add koa-session into dependencies

0.2.0 / 2014-05-25

  • remove middlewares.render, add cookieSession
  • bump dependencies
  • rename to conditional

0.1.3 / 2014-03-31

  • remove koa-fresh, add koa-conditional-get

0.1.2 / 2014-03-28

  • fix koa-compress dep

0.1.1 / 2014-03-27

  • add koa-compress

0.1.0 / 2014-03-21

  • update dependencies

0.0.12 / 2014-03-17

  • update koa-ejs

0.0.11 / 2014-03-15

  • update koa-router, koa-session

0.0.10 / 2014-03-14

  • update readme for koa-sess
  • update koa-sess, koa-router

0.0.9 / 2014-03-11

  • update ejs, static-cache, bodyparser, gzip, fresh

0.0.8 / 2014-03-03

  • add alias, fix readme

0.0.7 / 2014-03-03

  • Merge pull request #2 from fengmk2/gzip
  • add koa-gzip

0.0.6 / 2014-02-27

  • update koa-sess, koa-session, koa-etag

0.0.5 / 2014-02-27

  • Merge pull request #1 from fengmk2/koa-fresh
  • add AUTHORS
  • add koa-fresh

0.0.4 / 2014-02-27

  • add etag

0.0.3 / 2014-02-27

  • add Makefile
  • add autod, update session to 0.0.9

0.0.2 / 2014-02-26

  • update bodyparser to 0.0.2

0.0.1 / 2014-02-25

  • update readme
  • init middlewares
  • Initial commit