【问题标题】:Getting error while using express framework when responding inside setInterval()在 setInterval() 中响应时使用快速框架时出错
【发布时间】:2023-01-27 18:51:58
【问题描述】:

当用户请求获取主页请求时,我正在创建简单的应用程序来发送简单的消息问候。

app.get("/",(req,res)=>{
    setInterval(function(){
        res.status(200);
        res.send("hello");
    },5000)
})

想法是在 5 秒后发送响应。 编译器在发送响应后抛出错误。 错误如下

节点:_http_outgoing:663 抛出新的 ERR_HTTP_HEADERS_SENT('set'); ^

错误 [ERR_HTTP_HEADERS_SENT]:将标头发送到客户端后无法设置标头 在新的 NodeError(节点:内部/错误:400:5) 在 ServerResponse.setHeader(节点:_http_outgoing:663:11) 在 ServerResponse.header (C:\Users\prudh\OneDrive\Documents\projects\whatsapp\node_modules\express\lib\response.js:794:10) 在 ServerResponse.send(C:\Users\prudh\OneDrive\Documents\projects\whatsapp\node_modules\express\lib\response.js:174:12) 在 Timeout._onTimeout (C:\Users\prudh\OneDrive\Documents\projects\whatsapp\index.js:40:13) 在 listOnTimeout(节点:内部/计时器:564:17) 在 process.processTimers(节点:内部/计时器:507:7){ 代码:'ERR_HTTP_HEADERS_SENT' }

为什么我会遇到此错误消息。

这是基本代码块,所以我没有尝试任何东西。

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    setInterval 重复运行函数,所以当它第二次尝试运行函数时你会看到这个错误,因为响应已经发送到客户端。使用 setTimeout 来延迟函数:

    app.get("/",(req,res)=>{
        setTimeout(function(){
            res.status(200).send("hello");
        },5000)
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      相关资源
      最近更新 更多