Node.js 如果出现其他情况,快速会话闪存消息将变为空
我试图从请求模块中闪现一条JSON解析响应的消息,该模块将POST请求发送给第三方api 下面的代码显示了如何处理请求的响应clientServerOptions:Node.js 如果出现其他情况,快速会话闪存消息将变为空,node.js,express,request,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(json
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',但一旦超出条件范围。请求闪存'errMsg'为空
答:只在你真正使用它的地方调用req.flash'xxx',如果你在实际使用之前在其他地方调用它,它会清除它存储的值
闪光信息仅供一次使用,一旦使用就会清除
因此,当您在if-else中执行req.flash'errMsg'时,它会在控制台上显示消息,然后将其清除。这就是为什么在if/else之后您会在线显示空消息。非常感谢!我只是从express和flash开始,所以不清楚一旦调用get函数,flash是否会被清除。它现在可以工作了: