Node.js 节点-连接闪存无法重定向

Node.js 节点-连接闪存无法重定向,node.js,express,connect-flash,Node.js,Express,Connect Flash,我在使用connect flash时遇到了一些奇怪的问题,我在其他项目中也以完全相同的方式使用过它,而且效果很好,以下是我的: 某些路线 if (err) { req.flash('message', [{ class: 'alert-danger', message: 'TEST' }]); res.redirect('/error'); } router.get('/error', function (req, res, next) {

我在使用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
  });
})
错误路由

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
  });
})
控制台日志

---in error route
[ { class: 'alert-danger', message: 'TEST' } ]
错误。hbs

{{#if message}} 
    {{#each message}}
        <div class="{{this.class}}">{{this.message}}</div>
    {{/each}} 
{{/if}}

它可能很简单,但我不知道它是什么。

好吧,经过一些实验,纯属偶然,我发现console.log显然清除了闪存


我希望这能帮助任何遇到这个问题的人。

我知道你已经找到了一个解决方案,但对于任何有同样问题的人来说,问题实际上是当你使用
req.flash()
检索flash消息时,它实际上会在检索后删除该消息

如果你这样做了:

console.log(req.flash('message'));
console.log(req.flash('message'));
req.flash('message');
console.log(req.flash('message'));
console.log(req.flash('message'));
您可能会收到类似于此输出的内容:

[ 'TEST' ] 
[]
这是因为第一次调用
req.flash('message')
检索 删除给定的消息

此外,您是否已经这样做了:

console.log(req.flash('message'));
console.log(req.flash('message'));
req.flash('message');
console.log(req.flash('message'));
console.log(req.flash('message'));
您将收到与以下内容类似的输出:

[]
[]

检查您正在使用的express版本。我在使用带有connect flash的express 4.x.x时遇到了相同的问题。Connect flash适用于express 3.x.x,Connect flash plus适用于express 4.x.x