nodejs express req.session undefined

最后都变了- 提交于 2019-12-10 19:33:21

问题


Just can't figure this one out. Everything I find about express session says pretty much it just works, that, however, is not the case for me.

My whole app configuration

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

But the req.session is just undefined. I want to use it for user authentication - pretty basic. For some reason it turns out pretty tough for me.

I am using express 3.5.0.

My controller atm looks like this:

class AuthenticationController

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

module.exports = AuthenticationController

and routes:

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

回答1:


As suggested by loganfsmyth just had to move

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

above the app.use app.router and it just clicked. Thanks.



来源:https://stackoverflow.com/questions/22489237/nodejs-express-req-session-undefined

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!