Node.js 错误: [ERR_HTTP_HEADERS_SENT] 无法在发送响应后设置响应头
这个错误是因为在向客户端发送 HTTP 响应之后,尝试设置响应头。为了解决这个问题,需要确保在发送 HTTP 响应之前设置所有需要的响应头。此外,还需要处理未处理的 Promise 拒绝,以避免未来的错误。可以使用以下方法来解决这个问题:
-
确保在发送 HTTP 响应之前设置所有需要的响应头。
-
使用.catch() 处理 Promise 拒绝。
-
在启动 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
原文地址: https://www.cveoy.top/t/topic/mmFv 著作权归作者所有。请勿转载和采集!