var koa = require('..'); var app = koa(); // x-response-time app.use(function *responseTime(next){ var start = new Date; yield next; var ms = new Date - start; this.set('X-Response-Time', ms + 'ms'); }); // logger app.use(function *logger(next){ var start = new Date; yield next; var ms = new Date - start; console.log('%s %s - %s', this.method, this.url, ms); }); // content-length app.use(function *contentLength(next){ yield next; if (!this.body) return; this.set('Content-Length', Buffer.byteLength(this.body)); }); // custom 404 handler app.use(function *notfound(next){ yield next; if (this.body) return; this.status = 404; this.body = 'Sorry! No luck'; }); // response app.use(function *response(next){ yield next; if ('/' != this.url) return; this.body = 'Hello World'; }); app.listen(3000);