相关疑难解决方法(0)

NodeJS + Express - 将会话中间件应用于某些路由

我有一些带有一些路由的Express应用程序,其中只有两个需要支持会话.我到处读到中间件定义(app.use(express.session({...)仅适用于它之后的路由,所以我创建了这个示例:

var express = require('express');
var app = express();
app.use(express.bodyParser());

app.get('/path1', function (req, res) {
    res.send('text response');
});


app.use(express.cookieParser());
app.use(express.session({
    secret: 'secret',
    cookie: { maxAge: new Date(Date.now() + 2 * 60 * 1000) }
}));


app.get('/path2', function (req, res) {
    res.session.test = { "test": "test" };
    res.send('text response');
});

app.listen(8088);
Run Code Online (Sandbox Code Playgroud)

但这不起作用:/ path2 res.session未定义.
如果我移动会话中间件定义 - 一切正常,但我看到在调用/ path1时正在创建会话(这是我想要避免的)

有人可以解释单个应用程序如何仅在某些路由中使用会话.

谢谢!

/////更新//////

经过多次挖掘 - 我想通了:

不要使用:app.use(express.session({ ... }));
相反 - 定义以下内容:

var sessionMiddleware = express.session({
    //session configurations …
Run Code Online (Sandbox Code Playgroud)

session node.js express

23
推荐指数
1
解决办法
1万
查看次数

标签 统计

express ×1

node.js ×1

session ×1