我已将NodeJS应用程序更新至Express 4.0,现在除了express-session cookie之外,我无法设置自己的cookie。这个问题只发生在任何会话的第一次请求,当用户重新加载页面的自定义cookie在那里。NodeJS饼干无法与Express 4中的会话一起使用
var express = require('express');
var routes = require('./routes');
var http = require('http');
var path = require('path');
var session = require('express-session');
var app = express();
app.set('port', process.env.PORT || 3000);
app.use(express.static(path.join(__dirname, 'public')));
app.use(require('body-parser')());
app.use(require('method-override')());
app.use(require('cookie-parser')('cookie-secret'));
//app.use(session({ secret: 'secret', key: 'sid'})); //uncomment this to see the problem
app.get('/', function(req, res, next) {
res.cookie('testing', 'test'); //this isn't set if using 'app.use(session...)'
res.send('This is a cookie test');
});
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
要测试: 1.运行上面的代码中,cookie“测试”被发送到浏览器正确。 2.然后清除cookie并取消注释“app.use(session ...”行 3.运行应用程序,唯一的cookie是“sid”。“testing”在哪里? 4.重新加载页面不清除饼干)和“测试”的cookie是存在的。
这是至关重要的我所有的饼干都没有在第一次请求。
这样做对你的工作? – malix