2014-03-18 6 views
3

그냥 이걸 알아낼 수 없습니다. 내가 표현 세션에 대해 알게 된 모든 것은 그것이 작동한다는 것을 거의 말해 주지만, 그것은 나를위한 것이 아닙니다.nodejs express req.session undefined

내 전체 응용 프로그램 구성

app.configure -> 
    app.set 'port', process.env.PORT || 3000 
    app.set 'views', path.join(__dirname, 'views') 
    app.set 'view engine', 'jade' 
    app.use express.favicon() 
    app.use express.logger('dev') 
    app.use express.json() 
    app.use express.urlencoded() 
    app.use express.methodOverride() 
    app.use app.router 
    app.use express.static(path.join(__dirname, 'public')) 
    app.use express.bodyParser() 
    app.use express.cookieParser() 
    sessionStore = new express.session.MemoryStore 
    app.use express.session secret: 'key', store: sessionStore 

그러나 req.sessionundefined입니다. 나는 그것을 사용자 인증 용으로 사용하고자한다. 웬일인지 그것은 나를 위해 꽤 어려워진다.

나는 express 3.5.0을 사용하고 있습니다.

내 컨트롤러 기압은 다음과 같습니다

class AuthenticationController 

    signUp: (req, res) -> 
    console.log req.body._id 
    console.log req.session 
    res.status(200).send req.body 

module.exports = AuthenticationController 

및 경로 :

format = require './middlewares/format' 
AuthenticationController = require './controller' 

class Routes 

    constructor: (app) -> 
    throw new Error('app undefined') unless app 
    @controller = new AuthenticationController 
    @app = app 
    route.apply @ for key, route of @routes 

    routes: 
    sign_up: -> 
     @app.post '/sign_up', format.onlyJSON, @controller.signUp 

module.exports = Routes 
+0

'req'를 사용하는 코드를 표시 하시겠습니까? – Ali

+2

세션 미들웨어 전에는 app.use app.router가 있으므로 세션이 설정되기 전에 모든 경로가 처리됩니다. 왜 이런 식으로 주문 했니? – loganfsmyth

+0

실제로는 그렇게 생각하지 않았습니다 .... –

답변

6

loganfsmyth 제안으로 바로 app.use app.router

app.use express.cookieParser() 
sessionStore = new express.session.MemoryStore 
app.use express.session secret: 'key', store: sessionStore 

를 이동했고, 그냥 클릭 . 감사.