Я пытаюсь настроить приложение nodejs с помощью express 4.x. После того, как я наткнулся на проблемы с удалением промежуточного программного обеспечения, я, наконец, заставил его работать.
однако в следующей строке кода было несколько предупреждающих сообщений:
app.use(session({secret: '<mysecret>'})
эти предупреждения были:
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
в документации значения по умолчанию для resave и saveUninitialized истинны.
Итак, изменив код на чтение
app.use(session({secret: '<mysecret>',
saveUninitialized: true,
resave: true}));
избавился от предупреждений.
Итак, чтобы перейти к сути вопроса:
почему я должен передавать эти значения, если они являются значениями по умолчанию, и почему я не должен передавать другие параметры?
resave
иsaveUnitialized
являются логическими значениями, которые по умолчанию установленыtrue
в 1.7.2: github.com/expressjs/sessionsaveUninitialized
. Я скопировал то, что вы опубликовали, и потратил 45 минут, пытаясь выяснить, почему предупреждение не исчезнет. Позже я понял, что это была орфографическая ошибка. lol: DОтветы:
Как говорится в предупреждениях, значения по умолчанию изменятся, поэтому они хотят гарантировать, что, явно задав значения сейчас, вы не столкнетесь с неожиданным поведением, когда значения по умолчанию изменятся (в ближайшем будущем).
источник
Я нашел проблему полезной:
https://github.com/expressjs/session/issues/56
источник
false
( github.com/expressjs/session#resave , github.com/expressjs/session#saveuninitialized ).У меня недостаточно комментариев, чтобы добавить это в качестве комментария. Я добавил это для своего значения ответа Бена по умолчанию.
источник
источник