如何从node.js网络错误中获取更大的堆栈跟踪?

时间:2013-03-20 20:21:58

标签: node.js

我收到此错误:

Error: accept EMFILE
at errnoException (net.js:769:11)
at TCP.onconnection (net.js:1017:24)

来自node.js应用。我可以在第一时间获得调用TCP.onconnection的代码行号吗?

2 个答案:

答案 0 :(得分:4)

不,你不能,因为你的代码没有调用TCP.onconnection。这是一个事件处理程序,因此事件正在触发它。这是基于事件的编程难以调试的原因之一。

我认为你会很幸运地看到这个错误意味着什么。一些搜索显示您正在达到文件描述符限制,这可能会增加(但这将取决于操作系统,所以如果没有更多信息,我无法告诉您如何)。

答案 1 :(得分:1)

当系统中打开的文件太多时会发生EMFILE。要增加此限制,请查看Linux Increase The Maximum Number Of Open Files / File Descriptors (FD)或修改在作业完成时关闭已打开连接的代码。或者如果您需要打开太多文件,只需将此值增加到合理的大小。