用koa-routerredirectkoa中的嵌套路由

我如何使用koa-router做嵌套路由redirect?

app.js:

 var router = require('koa-router')(); var route1 = require('./routes/route1'); var route2 = require('./routes/route2'); router.use('/route1', route1); router.use('/route2', route2); app.use(router.routes()); 

route1.js:

 var router = require('koa-router')(); router.all('/', function *() { router.redirect('/route2'); }); module.exports = router.routes(); 

route2.js:

 var router = require('koa-router')(); router.all('/', function *() { this.body = "route2"; }); 

上面的代码在导航到/route1时导致以下错误:

 TypeError: Cannot read property '0' of undefined at Router.redirect (/Users/colevarner/fullpower/node/motionxlive-koa/node_modules/koa-router/lib/router.js:477:18) at Object.<anonymous> (/Users/colevarner/fullpower/node/motionxlive-koa/routes/support.js:54:12) at next (native) at onFulfilled (/Users/colevarner/fullpower/node/motionxlive-koa/node_modules/co/index.js:65:19) at /Users/colevarner/fullpower/node/motionxlive-koa/node_modules/co/index.js:54:5 at Object.co (/Users/colevarner/fullpower/node/motionxlive-koa/node_modules/co/index.js:50:10) at Object.toPromise (/Users/colevarner/fullpower/node/motionxlive-koa/node_modules/co/index.js:118:63) at next (/Users/colevarner/fullpower/node/motionxlive-koa/node_modules/co/index.js:99:29) at onFulfilled (/Users/colevarner/fullpower/node/motionxlive-koa/node_modules/co/index.js:69:7) at /Users/colevarner/fullpower/node/motionxlive-koa/node_modules/co/index.js:54:5 

啊,我需要学习阅读。 我解释了koa-router文档说, router.redirect()是打算在HTTP动词函数中使用的。

正确的用法如下:

 //either this router.redirect('/route1', '/route2'); //or regular koa redirect router.all('/route1', function *() { this.redirect('/route2'); });