Express 4.0, 이상한 경고 메시지가있는 익스프레스 세션


105

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}));

경고를 제거했습니다.

따라서 질문의 요점을 얻으려면 :

기본값 인 경우이 값을 전달해야하는 이유와 다른 옵션을 전달하지 않아도되는 이유는 무엇입니까?


1
이러한 기본값은 변경 될 것이며 변경 될 때이를 미들웨어에 명시 적으로 전달하여 발생할 수있는 오류를 피할 수 있기 때문입니다.
soulcheck

12
나는 그들이 유용하게 기본 옵션이 무엇인지를 알려하지 마십시오 어떻게 사랑
Brade

4
resave및 둘 다 1.7.2에서 saveUnitialized기본값 인 부울입니다 true: github.com/expressjs/session
cfs

1
@cfs :이어야합니다 saveUninitialized. 나는 당신이 게시 한 것을 복사하고 경고가 사라지지 않는지 알아 내기 위해 45 분을 낭비했습니다. 나중에 나는 철자 오류가 있다는 것을 깨달았습니다. LOL : D
AdityaParab

1
낭비 된 시간에 대해 죄송합니다. Maverick :) 불행히도 댓글이 너무 오래되어 편집 할 수 없습니다. 그렇지 않으면 오타를 고칠 것입니다. : /
cfs

답변:


68

경고에서 말했듯이 기본값이 변경되므로 지금 명시 적으로 값을 설정하여 기본값이 변경 될 때 예기치 않은 동작이 발생하지 않도록합니다 (가까운 장래에).


아,이 두 매개 변수의 기본값이 언젠가 변경 될까요? 그것은 훨씬 더 의미가 있습니다! 감사.
jmls 2014-06-29

3
전설 :) 여전히 곧 바꿀 것, 그것이있다
QCOM

2
여기 미래에서. 곧 변경 될 예정입니다. :)
comphonia

53

유용한 문제를 발견했습니다.

https://github.com/expressjs/session/issues/56

app.use(session({
    secret: cookie_secret,
    resave: true,
    saveUninitialized: true
}));

1
주변 충분한 표시되지 않습니다 ... 코드의 형태로 질문에 대답을 주셔서 감사합니다
데이브

좋은. 또한 문서를 살펴 보는 것이 좋습니다. 제 경우에는 false( github.com/expressjs/session#resave , github.com/expressjs/session#saveuninitialized ) 로 설정하는 것이 좋습니다 .
juanra

5

댓글로 추가 할 담당자가 충분하지 않습니다. 나는 Ben의 대답의 기본값에 이것을 추가했습니다.

secret: process.env.SESSION_SECRET || '<mysecret>',

2
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
}));

나를 위해 작동합니다. 세션에 추가 설정이 필요할 수도 있습니다. 감사합니다
martinhajny
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.