如何在Nodejs Express中使用flash

问题描述 投票:0回答:3

我想使用

flash
通知来显示成功消息。我尝试过,正如我下面提到的。当我尝试下面的代码时,它没有显示任何内容。我该如何解决这个问题?

page.js :

exports.create = async (req, res) => {
  try {
     req.flash('error_messages_test', 'Invalid credentials');
     res.redirect('/page');
  } catch (e) {
     //code...
  }
};

page.handlerbars:

<div>
  {{#if error_messages_test}}
    <div class="alert alert-danger">{{error_messages_test}}</div>
  {{/if}}
</div>

app.js :

const flash = require('connect-flash');
app.use(flash());
javascript node.js express
3个回答
1
投票

您需要从处理“/page”路由的函数将“error_messages_test”变量传递到您的视图。

尝试这样:

app.get('/page', function(req, res){
  // other stuff
  // Get flash messages by passing the key to req.flash()
  res.render('page', { error_messages_test: req.flash('error_messages_test') });
});

0
投票

尝试将“error_messages_test”作为中间件传递,以便您可以在每个路由上使用它。

app.use((req, res, next)=>{
     res.locals.error_messages_test = req.flash("error_messages_test");
});

0
投票

就我而言,因为我使用

const flash = require('express-flash')
而不是
connect-flash
我只需要更改 page.handlebars:

<div>
  {{#if messages.error_messages_test}}
    <div class="alert alert-danger">{{messages.error_messages_test}}</div>
  {{/if}}
</div>

但是,也许这也适合你。

© www.soinside.com 2019 - 2024. All rights reserved.