ECONNRESET(連接被對(duì)等方重置):連接被對(duì)等方強(qiáng)制關(guān)閉。這通常是由于超時(shí)或重新啟動(dòng)導(dǎo)致遠(yuǎn)程套接字上的連接丟失所致。通常通過http 和net模塊才遇到的。
ECONNRESET錯(cuò)誤介紹與解決方法
ECONNRESET是與另一臺(tái)服務(wù)器的 TCP 連接突然關(guān)閉(通常在收到響應(yīng)之前)時(shí)發(fā)生的常見異常。當(dāng)您嘗試通過已關(guān)閉的 TCP 連接發(fā)出請(qǐng)求時(shí),或者在收到響應(yīng)之前關(guān)閉連接時(shí)(可能是在超時(shí)的情況下),可能會(huì)發(fā)出該信號(hào)。根據(jù)您的 Node.js 版本,此異常通常如下所示:
Error: socket hang up at connResetException (node:internal/errors:691:14) at Socket.socketOnEnd (node:_http_client:466:23) at Socket.emit (node:events:532:35) at endReadableNT (node:internal/streams/readable:1346:12) at processTicksAndRejections (node:internal/process/task_queues:83:21) { code: 'ECONNRESET' }
如果在向另一臺(tái)服務(wù)器發(fā)出請(qǐng)求時(shí)發(fā)生此異常,您應(yīng)該捕獲它并決定如何處理它。例如,您可以立即重試該請(qǐng)求,或?qū)⑵渑抨?duì)以供稍后使用。如果您想等待更長時(shí)間才能完成請(qǐng)求,您還可以檢查超時(shí)設(shè)置。
res.end()另一方面,如果它是由客戶端故意關(guān)閉對(duì)服務(wù)器的未完成請(qǐng)求引起的,那么除了結(jié)束連接 ( ) 并停止生成響應(yīng)時(shí)執(zhí)行的任何操作之外,您不需要執(zhí)行任何操作。您可以通過以下方式檢測(cè)客戶端套接字是否被破壞:文章來源:http://www.zghlxwxcb.cn/article/463.html
app.get("/", (req, res) => { // listen for the 'close' event on the request req.on("close", () => { console.log("closed connection"); }); console.log(res.socket.destroyed); // true if socket is closed });
文章來源地址http://www.zghlxwxcb.cn/article/463.html
到此這篇關(guān)于如何解決nodejs報(bào)錯(cuò):ECONNRESET的文章就介紹到這了,更多相關(guān)內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!