我在快递项目中使用了把手。并且我使用了req.flash()方法,但是它不会显示在我的hbs文件中。
这是我的代码:
req.flash('message','Tag already exists');
res.redirect('/p/tags/add');
在.hbs文件中:
{{#if message}}
<h1>Tag Already ِExists</h1>
{{/if}}
也在我的app.js中:
app.use(flash());
似乎是什么问题?
谢谢!
答案 0 :(得分:0)
You need to use your flash message inside your redirected URL like this:
app.get('/p/tags/add', function(req, res){
res.render('yourhbsfile', { message: req.flash('message') });
});
EDIT: So to clarify about the confusion on flash message, it can be set from anywhere before redirecting to any route or inside any middleware before using res.render() and can propagate that message inside req
or request
object. you may print req
and check flash
object for better understanding.
答案 1 :(得分:0)
确实不能通过重定向添加 flash
。
你必须在重定向前执行 flash
函数,然后你必须在渲染函数中使用它。
boo = (req, res) => {
req.flash("error", "This is an error!");
return res.redirect("/index");
}
indexPage
函数。渲染功能以查看/index页面。
indexPage = (req, res) => {
let message = req.flash();
res.render("index", {
message: message,
});
}
以及如何查看Handlebar中的数据index.hbs
{{#if message.error}}
{{{message.error}}}
{{/if}}