【问题标题】:Node.js client-sessions not creating req.sessionNode.js 客户端会话未创建 req.session
【发布时间】:2013-06-20 11:17:16
【问题描述】:

我遇到了节点客户端会话问题,因此我尝试使用来自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

发生了什么事? node-client-sessions 不应该创建req.session吗?

【问题讨论】:

    标签: javascript node.js session express


    【解决方案1】:

    是的,只是req 属性的默认名称从session 更改为session_state。改变它修复它。

    【讨论】:

    • 澄清一下,这是通过cookieName 设置完成的:app.use(clientSessions({ cookieName: 'session' }));
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 2021-11-27
    • 2014-11-07
    • 1970-01-01
    • 2011-06-14
    • 2017-04-01
    相关资源
    最近更新 更多