我在node.js中使用express并尝试设置 session 变量,这是我的代码:-
var express = require('express');
app.use(express.session({ secret: 'mysecret', cookie: { maxAge: 999999999, path: '/' } })); // session secret
这里是设置 session :-
app.get('/login', function (req, res) {
req.session.Name="Hello";
}
这些路线的工作正常和返回值:-
app.get('/users',function (req, res) {
console.log(req.session.Name);
res.render('home.ejs');
});
app.get('/userList',function (req, res) {
console.log(req.session.Name);
res.render('home.ejs');
});
但在该路由中不起作用,并且始终返回未定义或 null:-
app.get('/user/:id', function (req, res) {
console.log(req.session.Name);
res.render('home.ejs');
});
我做错了什么? 请帮我解决这个问题。 谢谢
最佳答案
可能您使用的是过时版本的软件包。相同的代码适用于 Express-Session 包。 (https://github.com/expressjs/session)。 示例代码如下:
var express = require('express');
var session = require('express-session');
var app = express();
app.use(session({
secret: 'mysecret',
cookie: {
maxAge: 999999999,
path: '/'
}
})); // session secret
app.get('/login', function(req, res) {
req.session.Name = "Hello";
res.send('Hello World');
});
app.get('/users', function(req, res) {
console.log(req.session.Name);
res.send('Hello World');
});
app.get('/userList', function(req, res) {
console.log(req.session.Name);
res.send('Hello World');
});
app.get('/user/:id', function(req, res) {
console.log(req.session.Name);
res.send('Hello World');
});
app.listen(8080);
关于javascript - session 在 Node.js 和 Express.js 中的某些页面上获取 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29742425/