如何解密nodejs" events.js:72"错误?

时间:2014-06-28 08:54:43

标签: node.js express

我有一个干净的Windows 8.1框,安装了最新的node.js(0.10.29)。我正在尝试制作一个简单的网络应用程序:

npm install express-generator -g
express --css=compass test
cd test
npm install
npm start

访问Web服务器后,节点退出并显示错误。我根本无法理解这个错误:(

enter image description here

首先,这个“events.js”文件是什么?为什么没有路径?它是我的应用程序中的文件,一些nodejs内部文件还是通过npm install安装的一个软件包?有什么方法可以解决这个问题吗?

此外,之后的两行似乎是一个异常堆栈跟踪......但是只有两个项目呢?为什么我的应用程序不在堆栈跟踪上?为什么没有文件的完整路径?我怎样才能弄清楚他们的位置以及我的应用程序如何连接到此例外?

欢迎任何提示!

1 个答案:

答案 0 :(得分:1)

events.js是一个系统模块。它处理事件(就像命名状态一样)。该模块中的错误实际上并非如此,如果您仔细阅读文档,则会发现:

  

当EventEmitter实例遇到错误时,典型的操作   是发出错误'事件。错误事件被视为特殊事件   节点中的case。如果没有侦听器,则默认操作   是打印堆栈跟踪并退出程序。

因此,代码中的某些内容会发出Error事件,因为没有侦听器,EventEmitter(位于events.js文件中)会抛出错误。

正如您从错误消息中看到的,实际错误是关于尝试启动不存在的内容(程序中的代码会尝试生成子进程,但由于某些原因而无法解决。我不使用Windows并且不知道你的项目是做什么的以及它是如何工作的,所以你必须自己弄清楚原因。提示:https://github.com/joyent/node/blob/master/lib/child_process.js#L1020

您的应用程序不在堆栈跟踪上,因为进程的产生是异步的。因此,调用child_process.spawn的实际代码不再在堆栈中。这是......事件循环的几次迭代之前但不再存在。 有时这样的模块可能有所帮助:https://www.npmjs.org/package/superstackhttps://www.npmjs.org/package/longjohn