假设我有一个简单的页面,它存储了页面在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会话参数?
发布于 2018-08-01 06:08:11
您似乎没有在第二个路由上发送任何响应,根据文档(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')
});https://stackoverflow.com/questions/51619386
复制相似问题