Próbuję skonfigurować aplikację nodejs przy użyciu express 4.x. Po natknięciu się na problemy z usuwaniem oprogramowania pośredniego w końcu udało mi się to uruchomić.
jednak w następującym wierszu kodu było kilka komunikatów ostrzegawczych:
app.use(session({secret: '<mysecret>'})
te ostrzeżenia były:
Sun, 29 Jun 2014 12:45:10 GMT express-session deprecated pass resave option; default value will change at lib\config\express.js:55:11
Sun, 29 Jun 2014 12:45:10 GMT express-session deprecated pass saveUninitialized option; default value will change at lib\config\express.js:55:11
w dokumentacji domyślne wartości resave i saveUninitialized to true.
więc zmiana kodu do odczytania
app.use(session({secret: '<mysecret>',
saveUninitialized: true,
resave: true}));
pozbył się ostrzeżeń.
A więc, aby przejść do sedna pytania:
dlaczego powinienem przekazywać te wartości, jeśli są one wartościami domyślnymi, i dlaczego nie muszę przekazywać innych opcji?
resave
isaveUnitialized
są wartościami logicznymi, które domyślnie sątrue
w wersji 1.7.2: github.com/expressjs/sessionsaveUninitialized
. Skopiowałem to, co opublikowałeś i zmarnowałem 45 minut, próbując dowiedzieć się, dlaczego ostrzeżenie nie zniknie. Później zdałem sobie sprawę, że wystąpił błąd w pisowni. lol: DOdpowiedzi:
Jak mówią ostrzeżenia, wartości domyślne zmienią się, więc chcą mieć pewność, że ustawiając je teraz jawnie, nie napotkasz nieoczekiwanego zachowania, gdy wartości domyślne się zmienią (w najbliższej przyszłości).
źródło
Problem okazał się przydatny:
https://github.com/expressjs/session/issues/56
źródło
false
( github.com/expressjs/session#resave , github.com/expressjs/session#saveuninitialized ).Nie mam wystarczającej liczby przedstawicieli, aby dodać to jako komentarz. Dodałem to dla mojej domyślnej wartości odpowiedzi Bena.
źródło
źródło