我正在尝试从请求模块中闪现一条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'),如果您在实际使用之前在其他地方调用它,它会清除它存储的价值
答案 0 :(得分:1)
Flash消息仅供一次使用,一旦使用就会被清除。
因此,当您在req.flash('errMsg')
中执行if else
时,它会在控制台上显示该消息,然后将其清除。这就是if/else
之后显示空信息的原因。