2016-09-10 17 views
1

で提案されているように、koa-composeを使用してミドルウェアをまとめています。私はkoa-composekomposeとしてインポートします。koa async関数ミドルウェアを作成する際にエラーが発生しました

私は次のコードを持っている:私は、チェーンの最後のミドルウェアとしてそれを使用

const home = async function home (ctx,next) { 
    if(ctx.path === '/') { 
    ctx.body = 'Hello World!' 
    } else { 
    await next() 
    } 
} 

const random = async function random (ctx,next) { 
    console.log(ctx) 
    if(ctx.path === '/random') { 
    console.log('Inside random function') 
    ctx.body = Math.floor(Math.random() * 10) 
    } else { 
    await next() 
    } 
} 

const backwards = async function backwards (ctx,next) { 
    if(ctx.path === '/backwards') { 
    ctx.body = 'sdrawkcab' 
    } else { 
    await next() 
    } 
} 

const pi = async function pi (ctx,next) { 
    if(ctx.path === '/pi') { 
    ctx.body = String(Math.PI) 
    } else { 
    await next() 
    } 
} 

const body2 = kompose([random,backwards,pi,home]) 

を:

app.use(responseTime()) 
app.use(logger()) 
app.use(body2) 
app.listen(3000) 

私はこのエラーを取得する:

TypeError: undefined is not a function 
     at Object.<anonymous> (/home/vamsi/Do/koa-tutorial/node_modules/koa-compose/index.js:28:19) 
     at undefined.next (native) 
     at onFulfilled (/home/vamsi/Do/koa-tutorial/node_modules/co/index.js:65:19) 
     at /home/vamsi/Do/koa-tutorial/node_modules/co/index.js:54:5 
     at new Promise (/home/vamsi/.nvm/v6.2.0/lib/node_modules/babel-cli/node_modules/core-js/modules/es6.promise.js:191:7) 
     at Object.co (/home/vamsi/Do/koa-tutorial/node_modules/co/index.js:50:10) 
     at converted (/home/vamsi/Do/koa-tutorial/node_modules/koa-convert/index.js:17:15) 
     at dispatch (/home/vamsi/Do/koa-tutorial/node_modules/koa/node_modules/koa-compose/index.js:43:32) 
     at next (/home/vamsi/Do/koa-tutorial/node_modules/koa/node_modules/koa-compose/index.js:44:18) 
     at _callee7$ (index.js:72:11) 

完全なコードon githubです。コード内のをbody2に置き換えることができます。

UPDATE:

追加のログのビットを行った後、それは言う:あなたは発電機ベース興亜2のためkoa-composeを、それが動作しません使用している

TypeError: next is not a function 
     at Object._callee3$ (index.js:29:11) 
     at tryCatch (/home/vamsi/.nvm/v6.2.0/lib/node_modules/babel-cli/node_modules/regenerator-runtime/runtime.js:62:40) 
     at GeneratorFunctionPrototype.invoke [as _invoke] (/home/vamsi/.nvm/v6.2.0/lib/node_modules/babel-cli/node_modules/regenerator-runtime/runtime.js:336:22) 
     at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/home/vamsi/.nvm/v6.2.0/lib/node_modules/babel-cli/node_modules/regenerator-runtime/runtime.js:95:21) 
     at step (index.js:3:1) 
     at index.js:3:1 
     at new Promise (/home/vamsi/.nvm/v6.2.0/lib/node_modules/babel-cli/node_modules/core-js/modules/es6.promise.js:191:7) 
     at Object.<anonymous> (index.js:3:1) 
     at Object.backwards (index.js:25:7) 
     at Object.<anonymous> (/home/vamsi/Do/koa-tutorial/node_modules/koa-compose/index.js:25:28), 

答えて

関連する問題