0

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
  });
})

それはおそらく単純なことですが、それが何であるかはわかりません。

4

3 に答える 3

7

いくつかの実験の後、純粋な偶然によって、 console.log が明らかにフラッシュをクリアすることがわかりました!!!!

これが、この問題に遭遇した人の助けになることを願っています。

于 2017-01-09T23:57:11.590 に答える