ユーザーがサインインに失敗した後にフラッシュメッセージを表示したいのですが、変数を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に値を設定し、ビューでそれらにアクセスする簡単な例を見せていただければ幸いです。
ps 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)
)