【问题标题】:Node - Koa Dynamic Route based on urlNode - 基于 url 的 Koa 动态路由
【发布时间】:2020-10-09 23:06:36
【问题描述】:

我们的目标是让每个字母都有这样的路由 - /names/A 一直到 Z在网址中。我正在尝试使用koakoa-routekoa-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


    【解决方案1】:

    从您提供的示例代码中,我可以看到您尚未将koa-session2 中间件应用于 Koa 应用程序。这就是 ctx.session 未定义的原因。

    app.use(session())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 2021-10-03
      • 2023-02-22
      • 2023-01-13
      • 2015-10-23
      相关资源
      最近更新 更多