“节点.js在行动”第 2 章.演示应用错误“引发错误:错误:侦听 EACCES”
"Node.js in action" Chapter 2. Demo app error "error raised: Error: listen EACCES"
我正在使用Linux Mint 14。
我创建了"Node.js in action"第 2 章中描述的聊天室应用程序。然而,
chatServer.listen(server);
在服务器中.js会导致此错误:
nodejs server.js
info - socket.io started
warn - error raised: Error: listen EACCES
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:904:11)
at Server._listen2 (net.js:1042:14)
at listen (net.js:1064:10)
at Server.listen (net.js:1138:5)
at Object.<anonymous> (/home/andrew/Google Drive/AJRComp/Src/JavaScript/Node.js/NodejsInAction/chatrooms/server.js:55:8)
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)
谷歌搜索这个似乎确实在 3 月 18 日提出了同样的问题,但它只出现在 Google 搜索中,我似乎无法在 stackoverflow 站点上找到它(它可能已被删除)。
我发现使用 socket.io 处理此错误的唯一解决方案是,如果端口号小于 1024,则必须以 root 身份运行,但我正在侦听 3000。
使用nmap 本地主机,端口 3001 被报告为打开并由 nessus 服务使用。但我似乎没有安装Nessus。那么是否有某种端口保护阻止我的应用程序侦听该端口?
提前谢谢。
Error: listen EADDRINUSE
这意味着错误地址已在使用中。在您想要 nodejs 服务器的同一端口上运行其他内容。
lsof -i:<port>
将为您提供有关端口上运行的进程的信息。
我终于设法追踪到了这一点(在 Cloud9 上,我没有回去在本地主机上尝试)。我用了
$ fuser 3000/tcp
以检查是否已使用该端口,然后
$ fuser -k 3000/tcp
以关闭该过程。
(除此之外,我不得不将用于最新版本的jquery文件更新为最新版本,以使聊天应用程序实际工作)。
相关文章:
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- 动态代码中存在系统应用程序地址错误
- Rails第一个应用程序错误——Errno::ENOENT
- 为什么Highchart在我的rails应用程序中加载了两次?(未捕获的Highcharts错误#16)
- 尝试在expressJS应用程序中使用haml咖啡时出现奇怪错误
- 应用程序在“关闭”之后停止工作(控制台中没有错误);咕哝的构造”;
- 流星应用程序中的按钮位置错误
- vendors.js:未捕获类型错误:无法读取属性'应用'使用webpack时未定义的
- Windows 8应用程序正在运行,现在得到0x800a1391-JavaScript运行时错误:'WinJS&
- JSHint 错误:未定义我的应用程序 (W117)
- Rails 应用程序(狂欢) - 突然的“未捕获的类型错误”
- 在安卓版本 4.4.2 上运行时应用中断,抛出错误:[ng:areq]
- 角度应用程序中 src 项的 404 错误
- 错误:invalid_client找不到 YouTube 分析应用脚本插件的 OAuth 客户端
- Javascript 运行时错误:“应用程序未定义”
- 类型错误: 应用程序电缆未定义
- 未捕获的引用错误:应用程序未在 Angularjs 中定义
- 引发错误应用程序
- Phonegap - JNI错误(应用程序错误):本地引用表溢出(max=512)
- Facebook网页错误:应用程序可能无效