清除cookie会话中另一条路由中的cookie变量

时间:2018-07-31 17:57:26

标签: express cookies session-cookies

让我们说我有一个简单的页面,该页面存储该页面在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会话参数更改为另一种路由?

1 个答案:

答案 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')
});