Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js客户端会话未创建req.session_Javascript_Node.js_Session_Express - Fatal编程技术网

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"
}