Koa Router v4.2 does not support an array of middleware, multiple middleware must be entered one by one:
1 
  | app.get('/foo', middleware1, middleware2); 
  | 
 
Using an array is much cleaner than multiple arguments.
1 
  | app.get('/foo', [middleware1, middleware2]); 
  | 
 
But the above will throw error:
1 
  | Error: GET: `middleware` must be a function, not `object` 
  | 
 
This can be easily fixed by using Koa Compose:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
  | var app = require('koa')(); var router = require('koa-router'); var compose = require('koa-compose'); app.use(router(app)); app.get('/foo', compose([   function *(next) {     this.body = {};     yield next;   },   function *(next) {     this.body.foo = 'foo';     yield next;   },   function *(next) {     this.body.bar = 'bar';     yield next;   } ])); 
  | 
 
Hence:
1 
  | app.get('/foo', compose([middleware1, middleware2])); 
  |