ExpressJS 3.0 Как передать res.locals в представление Jade?
Я хочу отобразить флэш-сообщение после того, как пользователь не может войти в систему, но я просто не могу заставить переменные отображаться в моих представлениях Jade.
У меня есть некоторые части, я знаю, что должен использовать это в моем app.configure ():
app.use (req, res, next) ->
res.locals.session = req.session
И я установлю, что такое флеш-сообщение после того, как пользователь УСТАНОВИТ неверный пароль:
exports.postSession = (req, res) ->
users = require '../DB/users'
users.authenticate(req.body.login, req.body.password, (user) ->
if(user)
req.session.user = user
res.redirect(req.body.redirect || '/')
else
req.session.flash = 'Authentication Failure!'
res.render('sessions/new', {title:'New', redirect: req.body.redirect })
)
Я не знаю, как получить доступres.locals.session
в моем файле Jade. Я сомневаюсь, что все настраиваю правильно. Этот вопрос очень похож на этот:Миграция Express.js с 2 на 3, в частности с app.dynamicHelpers () на app.locals.use? но я все еще не могу заставить его работать. Было бы очень полезно, если бы кто-то мог показать мне простой пример установки значений в res.local и доступа к ним в представлении.
постскриптум Я знаю о connect-flash, но мне нужно понять, как сделать вещи доступными в представлениях.
Это мое приложение:
app.configure(() ->
app.set('views', __dirname + '/views')
app.set('view engine', 'jade')
app.use(express.bodyParser())
app.engine('.jade', require('jade').__express)
app.use(express.methodOverride())
app.use(express.cookieParser())
app.use(express.session({ store: new express.session.MemoryStore({reapInterval: 50000 * 10}), secret: 'chubby bunny' }))
app.use(express.static(__dirname + '/public'))
app.use((req, res, next) ->
res.locals.session = req.session
next()
)
app.use(app.router)
)