首页 > 解决方案 > 将标头发送到客户端后无法设置标头 - 但代码不应运行

问题描述

所以我试图设置一个会话(确实设置)但是因为第 125 行的代码有这个:

 res.set({
      "Content-Type": "audio/mpeg",
      'Transfer-Encoding': 'chunked'
  });

它导致以下错误。

错误 [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头

一开始运行的代码是

 if(!query.uuid && !req.session.uuid){
         tempuuid = uuidv4();
         req.session.uuid = tempuuid;
         res.redirect('/station'+req.url+'&uuid='+tempuuid);
         
      }
      
      if(!req.session.uuid){
        req.session.uuid = query.uuid;
        res.redirect('/station'+req.url+'&uuid='+query.uuid);
        
      }

      if(req.session.uuid){
        uuid = req.session.uuid;
      }

所以我的问题是如果 res.redirect 已被触发,我如何阻止脚本进一步运行?

标签: node.jsexpress

解决方案


发生此错误通常是因为您的代码在您的愿望语句或操作之后运行。

尝试返回您的声明。根据Mozilla:return语句

在函数体中使用 return 语句时,函数的执行将停止。如果指定,则将给定值返回给函数调用者。


推荐阅读