nodejs экспресс req.session не определен

Просто не могу понять это. Все, что я нахожу об экспресс-сеансе, говорит о том, что оно просто работает, однако это не так для меня.

Вся моя конфигурация приложения

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.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

и маршруты:

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

person radical_edo    schedule 18.03.2014    source источник
comment
Покажите код, где вы используете req?   -  person Ali    schedule 18.03.2014
comment
У вас есть app.use app.router перед промежуточным программным обеспечением сеанса, поэтому все ваши маршруты будут обработаны до настройки сеансов. Почему вы их так заказали?   -  person loganfsmyth    schedule 19.03.2014
comment
Не думал, что это имеет значение, на самом деле....   -  person radical_edo    schedule 19.03.2014


Ответы (1)


Как было предложено loganfsmyth, просто нужно было переместить

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

над app.use app.router, и он просто щелкнул. Спасибо.

person radical_edo    schedule 19.03.2014