Express 4.x를 사용하여 nodejs 앱을 설정하는 작업을 시도하고 있습니다. 미들웨어 제거 문제를 겪은 후 마침내 작동하게되었습니다.
그러나 다음 코드 줄에 몇 가지 경고 메시지가 있습니다.
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의 기본값은 true입니다.
그래서, 읽을 코드를 변경
app.use(session({secret: '<mysecret>',
saveUninitialized: true,
resave: true}));
경고를 제거했습니다.
따라서 질문의 요점을 얻으려면 :
기본값 인 경우이 값을 전달해야하는 이유와 다른 옵션을 전달하지 않아도되는 이유는 무엇입니까?
답변
경고에서 말했듯이 기본값이 변경되므로 지금 명시 적으로 값을 설정하여 기본값이 변경 될 때 예기치 않은 동작이 발생하지 않도록합니다 (가까운 장래에).
답변
유용한 문제를 발견했습니다.
https://github.com/expressjs/session/issues/56
app.use(session({
secret: cookie_secret,
resave: true,
saveUninitialized: true
}));
답변
댓글로 추가 할 담당자가 충분하지 않습니다. 나는 Ben의 대답의 기본값에 이것을 추가했습니다.
secret: process.env.SESSION_SECRET || '<mysecret>',
답변
app.use(session({
cookieName: 'session',
secret: 'eg[isfd-8yF9-7w2315df{}+Ijsli;;to8',
duration: 30 * 60 * 1000,
activeDuration: 5 * 60 * 1000,
httpOnly: true,
secure: true,
ephemeral: true,
resave: true,
saveUninitialized: true
}));