var app = require('koa')() , logger = require('koa-logger') , json = require('koa-json') , views = require('koa-views') , onerror = require('koa-onerror'); var index = require('./routes/index'); var users = require('./routes/users'); // error handler onerror(app); // global middlewares app.use(views('views', { root: __dirname + '/views', default: 'jade' })); app.use(require('koa-bodyparser')()); app.use(json()); app.use(logger()); app.use(function *(next){ var start = new Date; yield next; var ms = new Date - start; console.log('%s %s - %s', this.method, this.url, ms); }); app.use(require('koa-static')(__dirname + '/public')); // routes definition app.use(index.routes(), index.allowedMethods()); app.use(users.routes(), users.allowedMethods()); // error-handling app.on('error', (err, ctx) => { console.error('server error', err, ctx) }); module.exports = app;