Node.js 如果出现其他情况,快速会话闪存消息将变为空

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

我试图从请求模块中闪现一条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',但一旦超出条件范围。请求闪存'errMsg'为空

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


闪光信息仅供一次使用,一旦使用就会清除


因此,当您在if-else中执行req.flash'errMsg'时,它会在控制台上显示消息,然后将其清除。这就是为什么在if/else之后您会在线显示空消息。

非常感谢!我只是从express和flash开始,所以不清楚一旦调用get函数,flash是否会被清除。它现在可以工作了: