当前位置: 首页 > 知识库问答 >
问题:

Express API:错误[ERR_HTTP_HEADERS_SENT]

凤自珍
2023-03-14

我知道这个问题被问了很多,但没有一个答案适合我的情况。即使我只向客户端发送了一次响应,我仍然会收到这个错误。有人能指出我遗漏了什么吗?谢谢你的帮助。这是我的路由器代码

router.get("/trainers/:page/:limit", verifyToken, (req, res) => {

  const numPerPage = req.params.limit; // number of items per page
  const page = req.params.page;
  let result; //final object to be sent to client

  connection.query("Select count(*) as totalCount from trainers", (err, rows, fields) => {
    if (err) {
      return res.sendStatus(500).json({error: err})
    }
    var totalCount = rows[0].totalCount;
    var numPages = Math.ceil(totalCount / numPerPage);

    connection.query("SELECT id FROM trainers LIMIT ? OFFSET ?", [numPerPage, (page-1) * numPerPage], (err, rows, fields) => {
      if (err) {
        return res.sendStatus(500).json({error: err})
      } else {
        result = { rows, numPages }
        res.json()
      }
    })
  })
})

以下是错误日志:

抛出err;//重新抛出非MySQL错误^

错误[ERR_HTTP_HEADERS_SENT]:在ServerResponse.setHeader(_http_outgoing.js:526: 11)在ServerResponse.header(/用户/迭戈/文档/DT个人培训应用程序/快递-api/node_modules/快递发送到客户端后,无法设置标头/lib/response.js:771: 10)在ServerResponse.send(/用户/迭戈/文档/DT个人培训App/Express-api/node_modules/Express/lib/response.js:170: 12)在ServerResponse.json(/用户/迭戈/文档/DT个人培训App/Express-api/node_modules/express/lib/response.js:267: 15)at Query.(/用户/迭戈/文档/DT个人培训应用程序/快速API/路由/管理员/trainers.js:53: 36)在查询。(/用户/迭戈/文档/DT个人培训App/Express-api/node_modules/mysql/lib/Connection.js:526: 10)在查询。_callback(/用户/迭戈/文档/DT个人培训App/Express-api/node_modules/mysql/lib/Connection.js:488: 16)在查询。Sequence.end(/用户/迭戈/文档/DT个人培训应用程序/Express api/node_modules/mysql/lib/协议/序列/Sequence.js:83: 24)查询。错误包(/用户/迭戈/文档/DT个人培训应用程序/Express-api/node_modules/mysql/lib/协议/序列/Query.js:92: 8)在协议。_parsePacket(/用户/迭戈/文档/DT个人培训应用程序/Express-api/node_modules/mysql/lib/协议/Protocol.js:291: 23){code:'ERR_HTTP_HEADERS_SENT'}

共有1个答案

长孙宜
2023-03-14

根据快递文件

res.sendStatus(500) // equivalent to res.status(500).send('Internal Server Error')

因此,您需要使用res.status(500)。json({error:err})避免此错误:)

 类似资料:
  • 我正在尝试搜索亚马逊的产品广告,并使用botlenose来帮助我做到这一点。但是,我刚刚收到HTTP错误400。 其他一些重要信息: 我来自巴西,我的标签也来自亚马逊。这是个问题吗? 我确实检查了我的钥匙、秘密和标签,一切正常。我确实在StackOverflow上查看了其他一些问题,但对我来说没有任何效果。 当然,出于安全原因,我更改了密钥。 Traceback(最近一次调用最后一次):File"

  • 我有一个基于Spring Web model view controller(MVC)框架的项目。Spring Web模型-视图-控制器(MVC)框架的版本是3.2.8 我有这个控制器 这个URL一切正常:

  • 目前从Angular JS controller中,我试图将JSON数据发送到后端服务。但是我有400个错误的请求错误。 在Controller中,我试图通过http服务发送数据,如下所示:

  • 我得到了这个错误,有什么想法会导致它吗?我试图发送一个DTO,它有一个扩展抽象类的对象列表,我想这个问题可能是因为DTO中的列表,还是因为抽象类的子类?

  • 在月食中, ”org.apache.axis2。AxisFault:传输错误: 403错误:禁止”试图从svn检出项目时发生错误。我不能实现这个错误,因此我检查了从终端使用"svn-co"命令的项目。 但是,有趣的是,当我试图在Eclipse中运行应用程序时,在输入凭据(用户名和密码)并按下“登录”按钮之后,我又遇到了相同的错误。响应是JFrame上的无效用户名/密码,但凭据没有错误。这只发生在日

  • Errors 错误 Library routines must often return some sort of error indication to the caller. As mentioned earlier, Go’s multivalue return makes it easy to return a detailed error description alongside th

  • 本章概述了Google API错误模型,以及开发人员如何正确生成和处理错误的一般指南。 Google API使用简单的协议无关错误模型,这使我们能够在不同的API,API协议(如gRPC或HTTP)以及错误上下文(例如,异步,批处理或工作流错误)中获得一致的体验。 错误模型 错误模型在逻辑上由google.rpc.Status定义,当API发生错误时,返回一个Status实例给客户端。 以下代码段

  • 5.4. 错误 在Go中有一部分函数总是能成功的运行。比如strings.Contains和strconv.FormatBool函数,对各种可能的输入都做了良好的处理,使得运行时几乎不会失败,除非遇到灾难性的、不可预料的情况,比如运行时的内存溢出。导致这种错误的原因很复杂,难以处理,从错误中恢复的可能性也很低。 还有一部分函数只要输入的参数满足一定条件,也能保证运行成功。比如time.Date函数