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 ++ - 从设置表单图标中抛出未处理的异常?