我希望在我的登录表单中显示一条Flash消息,那就是当用户在表单中提供了错误的凭据时,但我不知道在哪里添加闪存有点困惑。周围的人请帮忙。
app.post('/login',passport.authenticate("local", {
successRedirect: "/",
failureRedirect: "/login"
}), function(req, res){
req.flash('error', err.message)
})
我仍然希望它从表单中显示错误。我是新来的 帮助
req.flash('error', err.message)
答案 0 :(得分:0)
您应该将消息设置为res.locals
,如此
req.flash('error', 'This is an error message');
res.locals.message = req.flash();
然后你可以在你的html中显示它们
<div class="error-message">
<strong> <%=message.message%> </strong>
</div>
我希望它会对你有所帮助。
答案 1 :(得分:0)
在服务器端使用此代码:
var passport = require('passport');
var flash = require('connect-flash');
app.use(flash());
app.use(function(req, res, next) {
res.locals.success_msg = req.flash('success_msg');
res.locals.error_msg = req.flash('error_msg');
res.locals.error = req.flash('error');
next();
});
您可以在passport.js
中添加要弹出的消息:
req.flash('error_msg', 'That email is already taken.');
req.flash('success_msg', 'This is successfull');
并在您的前端代码中(根据您的语言。我使用把手进行前端模板化)显示您的提醒消息:
{{#if success_msg}}
<div class="alert alert-success">{{success_msg}}</div>
{{/if}}
{{#if error_msg}}
<div class="alert alert-danger">{{error_msg}}</div>
{{/if}}
{{#if error}}
<div class="alert alert-danger">{{error}}</div>
{{/if}}
答案 2 :(得分:0)
在登录时,您需要在failureFlash:true中编码,并将其设置为true
app.use(function(req,res,next){
res.locals.error = req.flash("error");
res.locals.success = req.flash("success")
next();
})
app.post("/dashlogin", passport.authenticate("local", {
successRedirect: "/dashboard",
failureRedirect: "/dashboard/login",
failureFlash: true,
}), function(req,res){
})
然后在页面中将其闪现给用户
<% if(error && error.length > 0) { %>
<div class="alert alert-danger" role="alert">
<div class="container">
<%= error %>
</div>
</div>
<% } %>