Javascript Node.js客户端会话未创建req.session
我在节点客户端会话方面遇到了问题,所以我尝试从中使用这个示例应用程序。但是,即使使用此基本应用程序,我也会得到Javascript Node.js客户端会话未创建req.session,javascript,node.js,session,express,Javascript,Node.js,Session,Express,我在节点客户端会话方面遇到了问题,所以我尝试从中使用这个示例应用程序。但是,即使使用此基本应用程序,我也会得到TypeError:无法读取未定义的-req的属性“username”。会话未定义。以下是完整的代码: #!/usr/bin/env node const app = require('express')(), clientSessions = require("client-sessions"); app.use(clientSessions({ secret: '0GBlJZ
TypeError:无法读取未定义的
-req的属性“username”。会话
未定义。以下是完整的代码:
#!/usr/bin/env node
const
app = require('express')(),
clientSessions = require("client-sessions");
app.use(clientSessions({
secret: '0GBlJZ9EKBt2Zbi2flRPvztczCewBxXK' // CHANGE THIS!
}));
app.get('/', function (req, res){
if (req.session.username) {
res.send('Welcome ' + req.session.username + '! (<a href="/logout">logout</a>)');
} else {
res.send('You need to <a href="/login">login</a>.');
}
});
app.get('/login', function (req, res){
req.session.username = 'JohnDoe';
console.log(req.session.username + ' logged in.');
res.redirect('/');
});
app.get('/logout', function (req, res) {
req.session.reset();
res.redirect('/');
});
app.listen(3000);
无论我转到localhost:3000还是locahost:3000/登录,我都会得到TypeError:无法读取未定义的属性“username”
发生什么事了?节点客户端会话不应该创建
req.session
?是的,因为原来只是req
属性的默认名称从session
更改为session\u state
。更改此选项可以修复此问题。为了澄清,这是通过cookieName
设置完成的:app.use(clientSessions({cookieName:'session')代码>
"dependencies": {
"express": ">= 3",
"client-sessions": ">= 0.0.9"
}