[英]Redirecting with nested routes in koa with koa-router
如何使用koa-router
使用嵌套路由重定向?
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');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.