2016-06-08 11 views
0

所以我在node.js下使用了express.js并遇到了这个问题。我有一个登录页面,如果你的密码/用户名错误,它会闪烁一条消息(基本的东西使用护照)。但是如果你继续尝试,其他错误信息将会叠加(每个只有一个,但是在它们不相关后它们仍然存在)。如何在使用快递加载页面后删除Flash消息?

有没有一种方法可以删除一旦他们已经显示的Flash消息?我正在使用this flash

这里是我试过到目前为止:

router.get("/login", function(req, res){ 
    res.render("login"); 
    res.locals.flash = []; 
}); 

和我的职务REQ

router.post("/login", passport.authenticate(
    "local", 
    { 
    successRedirect: "/", 
    failureRedirect: "/login", 
    failureFlash: true 
    } 
)); 

回答

1

我建议你使用connect-flash包,这一个你可以做smtg这样的:

app.post('/login', function(req, res){ 
    // if credentials are wrong 
    req.flash('msg', 'Try again !') 
    res.redirect('/login'); 
}); 

app.get('/login', function(req, res){ 
    res.render('login', { message : req.flash('msg') }); 
}); 

在意见中,你只需要检查消息存在并输出,与EJS将它smtg这样的:

<% if(message){ %> 
    <%= message %> 
<% } %> 

package:connect-flash

+0

是闪烁执着? – Snorflake

+0

不,这就是为什么我建议他们,他们只是第一次输出,一旦刷新页面,他们就消失了。 –

+0

检查包文档,你可以用它做很棒的东西。 –