http://www.javascriptkit.com/javatutors/cookie.shtml
仅会话cookie,另一方面 手,存储信息 浏览器内存,可用于 浏览器会话的持续时间。 换句话说,数据存储在里面 会话cookie可以从 存储时间直到浏览器 关闭。从页面移动到页面 在此期间不擦除 数据
如何使用Express.js实现此目的?
答案 0 :(得分:66)
首先,该网站是一个可怕的地方。
现在回答这个问题。
实际上是什么会话:
Session ID
或短SID
)与存储在服务器上的会话数据重新关联。Express.js has support for sessions built in
示例显示的内容:
安装Redis需要做一些工作,但也可以使用Express.js的内置内存存储:
var express = require('express');
var app = express.createServer();
var MemoryStore = require('connect/middleware/session/memory');
app.use(express.bodyDecoder());
app.use(express.cookieDecoder());
app.use(express.session({ store: new MemoryStore({ reapInterval: 60000 * 10 }) }));
app.get('/', function(req, res){
req.session.visitCount = req.session.visitCount ? req.session.visitCount + 1 : 1;
res.send('You have visited this page ' + req.session.visitCount + ' times');
});
app.listen(4000);
这将简单地跟踪您访问该页面的次数,关闭浏览器并重新打开。计数仍将存在。
您可以找到有关MemoryStore
选项的更多信息,例如会话的最长续订时间等。here。
答案 1 :(得分:10)
以下是我想要的(有点)。当我关闭浏览器时,信息就消失了。
var express = require('express');
var app = express.createServer();
var MemoryStore = require('connect/middleware/session/memory');
app.use(express.bodyDecoder());
app.use(express.cookieDecoder());
app.get('/remember', function(req, res) {
res.cookie('rememberme', 'yes', { expires: new Date() - 1, httpOnly: true });
});
app.get('/', function(req, res){
res.send('remember: ' + req.cookies.rememberme);
});
app.listen(4000, '127.0.0.1');
答案 2 :(得分:7)
app.use(express.session({cookie: { path: '/', httpOnly: true, maxAge: null }, secret:'eeuqram'}));
以上适用于IE8,Firefox和Chrome。 重要的部分是 maxAge:null
答案 3 :(得分:2)
以下是Alfred's answer的更新代码(使用Express.js的会话)。
var express = require('express');
var app = express.createServer();
var MemoryStore = require('/home/node/node_modules/connect/lib/middleware/session/memory');
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({
key: 'some-key',
secret: 'some-We1rD sEEEEEcret!',
store: new MemoryStore({ reapInterval: 60000 * 10 })
}));
app.get('/', function(req, res) {
req.session.visitCount = req.session.visitCount ? req.session.visitCount + 1 : 1;
res.send('You have visited this page ' + req.session.visitCount + ' times');
});
app.listen(4000);
答案 4 :(得分:2)
app.get('/remember', function(req, res) {
res.cookie('rememberme', 'yes', { expires: 0, httpOnly: true });
});
这将设置会话cookie。在浏览器关闭时,它将被删除!