Convert Koa Middleware - 04 Jan 2016

If you’re using Koa 2.0, you’ve likely noticed that a lot of middleware is no longer compatible. Luckily, this is an easy fix, if not a bit ugly. If you haven’t run across this issue, then the error you’ll see is:

TypeError: Support for generators has been removed. See the documentation for
examples of how to convert old middleware

This is generated because with 2.0 Koa removed support for generators, so you’ll need to convert your middleware to a supported format. In our case, we’re going to convert the old generator middleware to use promises. We’ll do so with the koa-convert library.

You can install koa-convert with:

  npm install koa-convert --save

Here’s an example for converting old middleware using koa-jade and es6.

  const Koa = require('koa')
  const Jade = require('koa-jade')
  const convert = require('koa-convert')

  const app = new Koa()
  const jade = new Jade({
    viewPath: './views'


  app.use(ctx => {


The key lines we’re using to convert the middleware are:

  const convert = require('koa-convert')


If your application relies on several old libraries, then you can just use convert on each one.


Once you’ve converted all of your old generator middleware, you’re good to go!