这个错误是因为在向客户端发送 HTTP 响应之后,尝试设置响应头。为了解决这个问题,需要确保在发送 HTTP 响应之前设置所有需要的响应头。此外,还需要处理未处理的 Promise 拒绝,以避免未来的错误。可以使用以下方法来解决这个问题:

  1. 确保在发送 HTTP 响应之前设置所有需要的响应头。

  2. 使用.catch() 处理 Promise 拒绝。

  3. 在启动 Node.js 进程时使用 --unhandled-rejections=strict 标志,以强制处理未处理的 Promise 拒绝。

示例代码:

// 设置响应头 res.setHeader('Content-Type', 'application/json'); // 发送 HTTP 响应 res.send(JSON.stringify(data)) .catch(err => { // 处理 Promise 拒绝 console.error(err); res.status(500).send('Internal Server Error'); });

// 在启动 Node.js 进程时使用 --unhandled-rejections=strict 标志 node --unhandled-rejections=strict app.js

Node.js 错误: [ERR_HTTP_HEADERS_SENT] 无法在发送响应后设置响应头

原文地址: https://www.cveoy.top/t/topic/mmFv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录