nodejs表达req.session未定义

rad*_*edo 3 session undefined node.js express

只是想不出来这个.我发现关于快递会议的一切都说得很有效,然而,对我来说并非如此.

我的整个应用配置

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
Run Code Online (Sandbox Code Playgroud)

但这req.session只是undefined.我想用它来进行用户身份验证 - 非常基本.出于某种原因,事实证明对我来说非常艰难.

我在用express 3.5.0.

我的控制器atm看起来像这样:

class AuthenticationController

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

module.exports = AuthenticationController
Run Code Online (Sandbox Code Playgroud)

和路线:

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
Run Code Online (Sandbox Code Playgroud)

rad*_*edo 6

正如loganfsmyth所建议的那样,不得不搬家

app.use express.cookieParser()
sessionStore = new express.session.MemoryStore
app.use express.session secret: 'key', store: sessionStore
Run Code Online (Sandbox Code Playgroud)

app.use app.router它之上,它只是点击了.谢谢.