我遇到了node-client-sessions的问题,所以我尝试使用https://github.com/fmarier/node-client-sessions-sample中的这个示例应用程序。但是,即使使用此基本应用,我也会TypeError: Cannot read property 'username' of undefined
- req.session
未定义。这是完整的代码:
#!/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);
package.json
有:
"dependencies": {
"express": ">= 3",
"client-sessions": ">= 0.0.9"
}
我是否转到localhost:3000或locahost:3000 / login我得到TypeError: Cannot read property 'username' of undefined
发生了什么事?节点 - 客户端会话不应该创建req.session
吗?
答案 0 :(得分:2)
是的,因为事实证明req
属性的默认名称已从session
更改为session_state
。改变它修复它。