gpt4 book ai didi

node.js - 如何调试 NodeJS 中的套接字挂起错误?

转载 作者:IT老高 更新时间:2023-10-28 21:53:25 24 4
gpt4 key购买 nike

我收到以下错误:

events.js:48
throw arguments[1]; // Unhandled 'error' event
^
Error: socket hang up
at createHangUpError (http.js:1091:15)
at Socket.onend (http.js:1154:27)
at TCP.onread (net.js:363:26)

在 Node v0.6.6 中,我的代码有多个 http.request 和 .get 调用。请提出一些方法来跟踪导致套接字挂起的原因,以及它是在哪个请求/调用上。谢谢

最佳答案

快速而肮脏的开发解决方案:

使用 longjohn ,您将获得包含异步操作的长堆栈跟踪。

清洁正确的解决方案:从技术上讲,在 Node 中,只要 you emit an 'error' event and no one listens to it, it will throw .为了让它不抛出,在它上面放一个监听器并自己处理它。这样您就可以记录错误并提供更多信息。

要为一组调用设置一个监听器,您可以使用 domains并在运行时捕获其他错误。确保与 http(Server/Client) 相关的每个异步操作位于不同的 domain与代码的其他部分相比,域将自动监听 error 事件并将其传播到它自己的处理程序。所以你只听那个处理程序并获取错误数据。 You also get more information for free. (域已弃用)。

按照 Mike 的建议,您也可以设置 NODE_DEBUG=net 或使用 strace .它们都为您提供了 Node 在内部执行的操作。

关于node.js - 如何调试 NodeJS 中的套接字挂起错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10814481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com