这是我的初始配置:
var session = require('express-session');
var cookieParser = require('cookie-parser');
app.use(session({
saveUninitialized: true,
resave: false,
genid: function(req) {
return Services.misc.generateUUID()
},
secret: secret.toString()
}));
app.use(cookieParser(secret));
然后在我的控制器中(它通过一个死的简单路由器路由到一个控制器,然后根据类似 Rails 的命名约定呈现适当的操作)我会做这样的事情:
var TestController = {
noaction: function(req, res) {
var locals = {
billy: 'the goat'
}
console.log('req session'.red, req.session);
res.cookie('test_cookie', 'Wu Tang Clan');
this.services.render.view(req, res, this, 200, locals);
}
module.exports = TestController;
请注意,这this.services.render.view
只是一项服务,因此我不必编写res.render('./app/controllers' + controller + '/' + action)
注意控制器中的 res.cookie 行(express.js 上的文档)。这就是官方文档所说的,事实上,它是在浏览器中设置的:
但是, res.cookie 上面的行是一个日志,我想我们会test_cookie
在其中包含,但是:
我每次得到的只是一个标准的空白cookie,即使它是在浏览器端设置的并且据说是发送的。
我的问题是:如何在 Express 4 中正确设置和接收 cookie?