我已將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