Ern*_*o11 23 javascript session node.js express
所以我基本上想要使用会话来存储用户名,并检查用户是否登录.如果没有,页面将重定向到登录页面.
我正在使用Node.js,express和couchDB.
这是我到目前为止如何设置我的会话
var MemoryStore = require('connect').session.MemoryStore;
app.use(express.cookieParser());
app.use(express.session({
secret: "keyboard cat",
store: new MemoryStore({
reapInterval: 60000 * 10
})
}));
Run Code Online (Sandbox Code Playgroud)
要在会话中存储内容,我使用以下代码吗?
req.session = {user:name);
Run Code Online (Sandbox Code Playgroud)
所以会话变量似乎在我的登录页面上工作.我成功地将用户的名称存储到会话中但是,当我尝试访问另一个页面上的会话变量时,它会给我错误
Cannot read property 'user' of undefined
Run Code Online (Sandbox Code Playgroud)
我所做的就是:
if (req.session.user){
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种错误?会话不是整个应用程序的全局?或者我在这里完全遗漏了一些东西.
提前致谢!
Mik*_*ott 71
如果您在app.use(app.router)设置cookie和会话处理的行之前进行操作,请尝试将其移至它们之后.这对我来说解决了同样的问题.
小智 4
在过去的几个小时里,我试图为他解决完全相同的问题。
尝试像这样初始化你的服务器:
var app = express.createServer(
express.cookieParser(),
express.session({ secret: "crazysecretstuff"})
);
Run Code Online (Sandbox Code Playgroud)
那应该有效。