KoaJS uses koa-composeunder ( here ), therefore app.use(compoase(m1,m2));they are the app.use(m1); app.use(m2);same. Using koa-composeexplicitly can provide more options for customization. The following is one such case:
app.use(middleware) , . ( ), koa-compose .
var app = require('koa')();
var router = require('koa-router')();
var compose = require('koa-compose');
var allMiddlewares = compose([m1,m2,m3]);
router.get('/', allMiddlewares);
router.get('/test', compose(logger, allMiddlewares));
app
.use(router.routes())
.use(router.allowedMethods());