【发布时间】:2020-10-09 23:06:36
【问题描述】:
我们的目标是让每个字母都有这样的路由 - /names/A 一直到 Z在网址中。我正在尝试使用koa、koa-route 和koa-session2 来执行此操作。
这是我的尝试,它给出了错误Cannot set property 'levelOneLetter' of undefined,这意味着 ctx.session 在 names.levelOne 中未定义。
var Koa = require("koa");
var route = require("koa-route");
var session = require("koa-session2");
var routes = require("./routes/routes.js");
// dynamic routes
const names = {
levelOne: (ctx, letter) => {
ctx.session.levelOneLetter = letter;
console.log('letter', letter);
app.use(route.get('/names/' + letter, routes.levelOne));
}
};
app.use(route.get('/names/:letter', names.levelOne));
//in routes
module.exports.levelOne = function *() {
this.status = 200;
this.state.levelOneLetter = ctx.session.levelOneLetter;
this.body = yield renderView("names", "level-one", this.state);
};
【问题讨论】:
标签: node.js dynamic koa koa-router ctx