我想使用
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());
您需要从处理“/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') });
});
尝试将“error_messages_test”作为中间件传递,以便您可以在每个路由上使用它。
app.use((req, res, next)=>{
res.locals.error_messages_test = req.flash("error_messages_test");
});
就我而言,因为我使用
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>
但是,也许这也适合你。