ExpressJS 3.0 Jak przekazać res.locals do widoku jade?
Chcę wyświetlić wiadomość flash po tym, jak użytkownik nie zaloguje się, ale nie mogę po prostu wyświetlić zmiennych w widokach Jade.
Mam kilka kawałków, wiem, że muszę użyć tego w mojej app.configure ():
app.use (req, res, next) ->
res.locals.session = req.session
I ustawię, co jest po wiadomości flash po napisaniu przez użytkownika niewłaściwego hasła:
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 })
)
Nie wiem, jak uzyskać dostępres.locals.session
w moim pliku Jade. Wątpię, że wszystko dobrze układam. To pytanie jest podobne do tego:Migracja Express.js 2 do 3, w szczególności app.dynamicHelpers () do app.locals.use? ale wciąż nie mogę go uruchomić. Byłoby bardzo mile widziane, gdyby ktoś pokazał mi prosty przykład ustawiania wartości w res.local i uzyskiwania do nich dostępu w widoku.
p.s. Wiem o connect-flash, ale muszę zrozumieć, jak udostępnić rzeczy w widokach.
To jest moja aplikacja:
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)
)