if else条件后,Express会话flash消息变空

时间:2018-04-11 03:21:18

标签: node.js express request

我正在尝试从请求模块中闪现一条JSON解析响应的消息,该消息将POST请求发送给第三方api。

以下代码显示了我如何处理响应(clientServerOptions是请求):

request(clientServerOptions, function (error, response) {
        console.log(error,response.body);
        var jsonResponse=JSON.parse(response.body);
        if(jsonResponse.ok){
        }else{
            req.flash('errMsg',jsonResponse.message);
            console.log(req.flash('errMsg')); // This line prints the message
        }
        console.log(req.flash('errMsg')); // this line doesn't, it's empty
        console.log('=======After redirect======');
        res.redirect('/entities');
    });

在if else条件下,console.log显示req.flash(' errMsg'),但一旦超出条件范围。 req.flash(' errMsg')为空。

  

答案:只在您真正使用它的地方调用req.flash(' xxx'),如果您在实际使用之前在其他地方调用它,它会清除它存储的价值

1 个答案:

答案 0 :(得分:1)

Flash消息仅供一次使用,一旦使用就会被清除。

因此,当您在req.flash('errMsg')中执行if else时,它会在控制台上显示该消息,然后将其清除。这就是if/else之后显示空信息的原因。