我试图让Node.js中的会话工作,我阅读并尝试了很多关于Node.js中的会话,在PHP中我可以使用$ _SESSION [' key'] = $ value;但我可以找到它在Node.js中的工作方式。
我一直在寻找快速会话,它看起来非常复杂,可以处理cookie,并使用MongoDB或Redis来存储会话。
所以我会问一下somarby可以通过ExpressJS以简单的方式分享样本来处理会话吗?
因为如果我使用快速会话,我需要使用node-uuid来配置我自己的uuid v4密钥。
所以希望我能在这里提供帮助,这是我完成用户登录所需要的。
答案 0 :(得分:2)
我将express-session和connect-mongo一起用于存储MongoDB中的会话。我的代码如下所示:
var express = require('express');
var session = require('express-session');
var mongoStore = require('connect-mongo')({
session: session
});
var cookieExpiration = 30 * (24 * 60 * 60 * 1000); // 1 month
app.use(session({
// When there is nothing on the session, do not save it
saveUninitialized: false,
// Update session if it changes
resave: true,
// Set cookie
cookie: {
// Unsecure
secure: false,
// Http & https
httpOnly: false,
// Domain of the cookie
domain: 'http://localhost:3001',
// Maximum age of the cookie
maxAge: cookieExpiration
},
// Name of your cookie
name: 'testCookie',
// Secret of your cookie
secret: 'someHugeSecret',
// Store the cookie in mongo
store: new mongoStore({
// Store the cookie in mongo
url: 'mongodb://localhost/databaseName',
// Name of the collection
collection: 'sessions'
})
}));
有关快速会话的所有选项,请参阅文档。
现在,您可以将所有会话数据存储在req.session
上。您在会话中提供的所有内容也将保存在MongoDB中。确保您从前端发送cookie,否则您的会话将始终为空。