connect-flash でいくつかの奇妙な問題が発生しています。他のプロジェクトでもまったく同じ方法で使用しましたが、問題なく動作しました。これが私が持っているものです。
一部のルート
if (err) {
req.flash('message', [{
class: 'alert-danger',
message: 'TEST'
}]);
res.redirect('/error');
}
エラールート
router.get('/error', function (req, res, next) {
console.log('---in error route')
console.log(req.flash('message'));
res.render('error', {
message: req.flash('message'),
layout: layout
});
})
console.log
---in error route
[ { class: 'alert-danger', message: 'TEST' } ]
エラー.hbs
{{#if message}}
{{#each message}}
<div class="{{this.class}}">{{this.message}}</div>
{{/each}}
{{/if}}
明らかにそこにありますが、印刷物はありません。最初のルートからエラーに正確にsmaeをコピーすると、表示されます(これは機能しませんが、hbsテンプレートロジックが機能することを確認するためのテスト用です):
router.get('/error', function (req, res, next) {
req.flash('message', [{
class: 'alert-danger',
message: 'TEST'
}]);
res.render('error', {
message: req.flash('message'),
layout: layout
});
})
それはおそらく単純なことですが、それが何であるかはわかりません。