让我们说我有一个简单的页面,该页面存储该页面在cookie中的浏览次数(代码来自cookie-session github自述文件):
var cookieSession = require('cookie-session')
var express = require('express')
var app = express()
app.set('trust proxy', 1) // trust first proxy
app.use(cookieSession({
name: 'session',
keys: ['key1', 'key2']
}))
app.get('/', function (req, res, next) {
// Update views
req.session.views = (req.session.views || 0) + 1
// Write response
res.end(req.session.views + ' views')
})
app.listen(3000)
然后,我想创建另一条路线,该路线将简单地增加前一条路线上的计数器:
app.get('/d', function(req, res, next) {
req.session.views = 0
console.log(req.session.views)
});
尽管如此,我仍然获得该'/'
路线上的观看次数,而在'/d'
路线上则为0。
如何将一种路由的Cookie会话参数更改为另一种路由?
答案 0 :(得分:1)
似乎您没有在第二条路由中发送任何响应,根据文档(https://github.com/expressjs/cookie-session#cookiesessionoptions),这意味着不会发送任何cookie,并且您的会话将保持不变。
因此,您擦除计数器的路线应如下所示:
app.get('/d', function(req, res, next) {
req.session.views = 0
res.end('View counter has been reset to 0')
});