无法控制console.log(req.flash(“error”))并同时呈现消息

时间:2016-02-09 05:51:53

标签: javascript node.js express passport.js

get部分,我对console.log()进行了评论。因此,我在屏幕上收到相应的消息。但如果我取消注释它,我会在控制台中收到这样的消息[message],但没有消息输出到屏幕上。这是为什么?我可以在路由处理程序中没有req.flash('error')吗?

app.get("/login", function(req, res){
    // console.log(req.flash("error"))
    res.render('login', { message: req.flash('error') });
})

app.post("/login", function(req, res, next){
    console.log("posted")
    passport.authenticate("local",{
        successRedirect : "/users/" + req.body.username,
        failureRedirect : "/login",
        failureFlash : true
    })(req, res, next)
} )

即时使用var flash = require("connect-flash");

1 个答案:

答案 0 :(得分:1)

connect-flash包状态(link)时,消息在使用后被清除,因此当您控制日志(并使用它)时,它被清除,当您在路由/中间件中再次调用它时,它已经是空。

编辑:如果你想再使用一个flash消息,那么也许可以将它存储在一些局部变量中,然后将console.log同时用于响应,但这只是一个猜测。我现在没有设置环境来检查它。

相关问题