복붙노트

[REDIS] '세션'표현을 사용하는 경우 정의되지는 / 세션 저장소에 대한 레디 스

REDIS

'세션'표현을 사용하는 경우 정의되지는 / 세션 저장소에 대한 레디 스

내 특급 응용 프로그램에서 세션 레디 스를 사용하는 것을 시도하고있다.

나는 다음을 수행 :

var express = require('express');
var RedisStore = require('connect-redis')(express);

app.configure('development', function(){     
    app.use(express.session({ secret: "password", 
                            store: new RedisStore({
                                          host: "127.0.0.1",
                                          port: "6379",
                                          db: "mydb"
                                        })  
          }));

나중에, 내 응용 프로그램에서, 내가 좋아하는 뭔가를 할 경우 :

var whatever = req.session.someProperty;

나는 얻다:

이 req.session이 정의되어 있음을 나타냅니다 (내 설정 섹션에서 CONSOLE.LOG 항목에서이를 볼 수 있습니다)

나는 확실히 레디 스 실행있어, 및 (레디 스-CLI 모니터를 사용) 처음에 내 응용 프로그램 커넥트를 볼 수 있습니다

해결법

  1. ==============================

    1.외모는 당신에게없는 게 좋아 :

    외모는 당신에게없는 게 좋아 :

    app.use(express.cookieParser());
    

    당신의 app.use 전 (express.session (...)); 요구.

    여길 봐.

  2. ==============================

    2.이 순서대로 3이 없으면 세션이 작동하지 않습니다 :

    이 순서대로 3이 없으면 세션이 작동하지 않습니다 :

    app.use(express.cookieParser());
    app.use(express.session());
    app.use(app.router);
    

    라우터가 세션을 사용하는 것이 필수입니다 있는지 확실하지 않습니다, 그러나 그것은 그들 앞에 배치됩니다 경우 그들을 나누기.

  3. ==============================

    3.동일한 문제가 있었다, 그러나 그것은 표현의 최신 버전의 변화에 ​​의해 발생했다.

    동일한 문제가 있었다, 그러나 그것은 표현의 최신 버전의 변화에 ​​의해 발생했다.

    이제 session.Store을 확장 수출 접속이 - 레디 스 함수에 명시 세션을 전달해야합니다 :

    var express = require('express');
    var session = require('express-session')
    var RedisStore = require('connect-redis')(session);
    
  4. ==============================

    4.상황이 익스프레스 3 / 익스프레스 4 최근 변경되었습니다. 당신은 버전 4를 사용하여 확인하시기 바랍니다.

    상황이 익스프레스 3 / 익스프레스 4 최근 변경되었습니다. 당신은 버전 4를 사용하여 확인하시기 바랍니다.

    전체 미들웨어 개념이 변경되었습니다. 당신은 수동으로 미들웨어를 설치해야합니다. "특급 세션은"4.0 미들웨어 중 하나입니다.

    나는 읽고 추천

    http://scotch.io/bar-talk/expressjs-4-0-new-features-and-upgrading-from-3-0 및 https://github.com/visionmedia/express/wiki/Migrating-from- 3.x를 - 투 - 4.x의

    또한 일부 사용자는 github에 자체가 그냥 "세션"라는 REPO하지만 혼동했다

    npm install express-session
    

    맞다.

  5. ==============================

    5.저도 같은 문제가 있었다. 그것은 레디 스 단순히 다른 포트에 구성되었는지 밝혀졌다.

    저도 같은 문제가 있었다. 그것은 레디 스 단순히 다른 포트에 구성되었는지 밝혀졌다.

  6. from https://stackoverflow.com/questions/10191692/session-is-undefined-when-using-express-redis-for-session-store by cc-by-sa and MIT license