ExpressJS - 抛出未处理的错误事件

Posted

技术标签:

【中文标题】ExpressJS - 抛出未处理的错误事件【英文标题】:ExpressJS - throw er Unhandled error event 【发布时间】:2013-05-25 13:05:42 【问题描述】:

我使用以下命令创建了 expressjs 应用程序:

express -e folderName
npm install ejs --save
npm install

当我使用node app.js 运行应用程序时,出现以下错误:

events.js:72
    throw er; // Unhandled 'error' event
          ^
Error: listen EADDRINUSE
    at errnoException (net.js:884:11)
    at Server._listen2 (net.js:1022:14)
    at listen (net.js:1044:10)
    at Server.listen (net.js:1110:5)
    at Object.<anonymous> (folderName/app.js:33:24)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)

如何解决?

【问题讨论】:

EADDRINUSE 表示该端口已在使用中。尝试更改 app.js 中的 Web 服务器侦听的端口,或者如果您不需要,则终止当前正在使用该端口的任何端口。 如果关闭端口不固定,试试这个>***.com/a/52441297/6665568 【参考方案1】:

就我而言,我也必须运行vagrant reload。即使没有节点进程在我的虚拟机中运行我的 express 应用程序,我仍然会收到此错误,直到重新加载 vagrant box。

【讨论】:

【参考方案2】:

为了解决这个问题,请终止或关闭您正在运行的服务器。 如果您使用的是 Eclipse IDE,请按照此操作,

运行 > 调试

右击正在运行的进程,然后点击Terminate

【讨论】:

【参考方案3】:

如果您尝试杀死所有节点实例和其他侦听 3000(快速骨架设置使用的默认值)的服务无济于事,则应检查以确保您的环境未将“端口”定义为意外。否则,您很可能会遇到同样的错误。在 express 骨架的 app.js 文件中,您会注意到第 15 行:

app.set('port', process.env.PORT || 3000);

【讨论】:

【参考方案4】:

关闭任何其他正在运行的节点服务器,即使它们在其他终端窗口中或在不同端口上运行。这应该可以解决问题。

【讨论】:

以上是关于ExpressJS - 抛出未处理的错误事件的主要内容,如果未能解决你的问题,请参考以下文章

Visual C ++ - 从设置表单图标中抛出未处理的异常?

Laravel 属于抛出未定义的错误

为啥即使元素存在,硒也会抛出未找到元素的错误? [复制]

抛出未处理的异常:写访问冲突。 bunnies_array 是 0x5CB3CBA

PeekMessage() 抛出未处理的异常(访问冲突)

从 Parallel.ForEach 抛出未处理的 OperationCanceledException