Zaktualizowałem moją aplikację NodeJS do wersji Express 4.0 i teraz nie mogę ustawić własnych plików cookie oprócz pliku cookie sesji ekspresowej. Ten problem występuje tylko na pierwszym żądaniu dowolnej sesji, gdy użytkownik ponownie ładuje stronę, na której znajdują się niestandardowe pliki cookie.Pliki cookie NodeJS nie działają z sesjami w 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'));
});
przetestować: 1. Uruchom powyższym kodzie, „testowanie” cookie jest wysyłane do przeglądarki prawidłowe. 2. Następnie wyczyść pliki cookie i odkomentuj linię "app.use (session ..." 3. Uruchom aplikację, a jedynym plikiem cookie jest "sid". Gdzie jest "testowanie"? 4. Ponownie załaduj stronę (bez kasowania ciasteczek) i „testowanie” cookie ma.
jest to istotne, że wszystkie ciasteczka są tam na pierwsze żądanie.
tę pracę dla ciebie? – malix