1

我遇到了 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吗?

4

1 回答 1

2

是的,事实证明只是req属性的默认名称从更改sessionsession_state. 改变它修复了它。

于 2013-06-24T03:44:44.983 回答