【发布时间】:2018-11-11 12:04:33
【问题描述】:
我正在尝试使用 cookie-session 在我的 express 应用中存储一个值。我想在我的任何路线中访问这个值。 我可以在我的 index.js 文件中完美地做到这一点。
var app = express();
app.set("trust proxy", 1);
app.use(
cookieSession({
name: "session",
secret: "key",
httpOnly: true,
maxAge: 30 * 60 * 1000,
secure: false,
overwrite: false
})
);
app.get("/", function(req, res, next) {
// Update views
req.session.views = (req.session.views || 0) + 1;
req.session.key = "some key I set"
// print out 3 views key = some key I set
res.end(req.session.views + " views " + "key = " + req.session.key);
});
我遇到的问题是,当我尝试在其中一条路线的会话中设置或获取任何内容时,我收到一条错误消息
无法设置未定义的属性“键”
这是我的 testRoute 文件
module.exports = app => {
app.get("/test",(req, res) => {
// throws error
res.end(req.session.key);
});
};
Ant 这就是我让我的 index.js 文件知道它的方式。
var app = express();
// Tell Index about my route
require("./routes/authRoutes")(app);
app.set("trust proxy", 1);
app.use(
cookieSession({
name: "session",
secret: "key",
httpOnly: true,
maxAge: 30 * 60 * 1000,
secure: false,
overwrite: false
})
);
我对表达和围绕中间件和路由的概念非常陌生。
在我的所有路由中授予对 cookie 会话的访问权限的正确方法是什么。
【问题讨论】:
-
你把
require("./routes/testRoute")(app);放在代码的什么地方(哪一行) -
你在哪里添加了 app.use(router)?
-
@Alex 我更新了我的问题。
-
是的,我以为是这样。看我的回答
-
@SushobhNadiger 我从使用 app.use(router) 中学到的例子都没有
标签: node.js express session-cookies