【问题标题】:Node events.js:167 throw er; // Unhandled 'error' event节点 events.js:167 throw er; // 未处理的“错误”事件
【发布时间】:2018-11-19 19:16:09
【问题描述】:

我正在尝试在 React 应用程序中使用 JSON 服务器。但是,我不断收到以下错误。

events.js:167
  throw er; // Unhandled 'error' event
  ^
Emitted 'error' event at:
at GetAddrInfoReqWrap.doListen [as callback] (net.js:1498:12)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:50:17)

我已将 npm 和 node 升级到最新版本。 我已经用 killall node 和 sudo killall -9 node 杀死了所有进程

任何想法可能导致问题?

【问题讨论】:

  • 你能把整个代码贴出来吗?
  • 下面列出的命令和错误。请让我知道是否还有其他有助于查看的内容。 命令: json-server --watch db.json --port 3004 错误: events.js:167 throw er; // Unhandled 'error' event ^ Error: getaddrinfo ENOTFOUND localhost at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:50:26) Emitted 'error' event at: at GetAddrInfoReqWrap.doListen [as callback] (net.js:1498:12) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:50:17)
  • 遇到了这个问题,我的问题是我在 package.json 中缺少 webpack-dev-server
  • create-react-app my-app cd my-app npm install react-scripts@2.1.8 npm start

标签: json node.js reactjs


【解决方案1】:

我遇到了同样的问题,我运行了killall node,然后运行了npm start,之后我在端口 5000 的本地服务器再次工作。希望对你有所帮助。

【讨论】:

    【解决方案2】:

    删除node_modules 目录并使用npm install 重新安装应该可以解决问题。

    【讨论】:

    • FWIW,我有同样的问题,重新安装没有帮助。一个数据点是,这个问题在 MacOS 中并没有在本地表现出来,而是在 minikube 的容器中旋转时发生。
    • 也许删除 package-lock.jsonnode_modules 并重新安装软件包可以解决问题
    • 删除 package-lock.json 和 node_modules 为我解决了这个问题。
    • 这个答案至少适用于关于节点的 10 个问题中的每 8 个
    • 我实际上遇到了同样的问题,rm -rf node_modulesnpm install 没有解决它。我也必须运行npm cache clear --force。由于它偶尔会出现,我决定写一个blog post 来讨论它
    【解决方案3】:

    以超级用户身份尝试npm startsudo npm start

    这对我有用。

    【讨论】:

      【解决方案4】:

      测试另一个 adb 设备 ...真正的智能手机或 android studie 或 genymotion npm start 在您的项目中 打开新标签并运行 react-native run-android 并在过去的终端标签中按 ctrl + c

      我猜为什么这个问题是我们无法运行 http://localhost:8081/debugger-ui/

      【讨论】:

        【解决方案5】:

        windows用户,运行命令

        Taskkill /IM node.exe /F
        

        它对我有用。

        参考:

        https://stackoverflow.com/a/51408717/9033834

        【讨论】:

          【解决方案6】:

          如果您在 Windows 上运行并在您的计算机上运行 IIS,请确保在尝试在端口 8080 上运行时停止 IIS 服务器。您还可以更改端口以不将 IIS 引入其中。

          npm start -- --port 8000
          

          【讨论】:

            【解决方案7】:

            重新启动 WebStorm 对我有用。 而不是npm install删除'node_modules'文件夹重新安装模块

            【讨论】:

              【解决方案8】:

              我也有同样的问题。基本上,我使用的是节点 v10+,但我的项目是在 v8.11.4 中创建的。所有模块都是根据旧版本(v8)使用的,这就是我面临这个问题的原因。所以有两种解决方案,要么更新你的模块,要么降级节点。

              我已经通过将节点从 v10 降级到 v8 来解决。由于项目依赖,部分模块无法更新。

              【讨论】:

                【解决方案9】:

                我运行了 npm install,然后 npm update 又运行了。

                【讨论】:

                  【解决方案10】:

                  使用 npm 更新 severless。这将解决它。

                  【讨论】:

                    【解决方案11】:

                    有点晚了,但是对于任何挣扎的人,我在不使用 sudo 的情况下创建 React 应用程序时遇到了这个错误。在运行npx create-react-app app-name 时使用sudo 解决了这个问题。

                    【讨论】:

                      【解决方案12】:

                      也许您在其他地方使用相同的端口启动了 echo 服务器。

                      【讨论】:

                        【解决方案13】:

                        我也遇到了这个确切的问题,发现它只存在于 react-scripts@3.0.0,降级到 react-scripts@2.1.8 解决了这个问题,而不需要弄乱环境变量。

                        create-react-app my-app
                        cd my-app
                        npm install react-scripts@2.1.8
                        npm start
                        

                        【讨论】:

                          【解决方案14】:

                          在我的情况下,它在我按照以下步骤操作后起作用:

                          1. 删除 node_modules 文件夹。
                          2. 运行 npm install。
                          3. 运行 npm 更新。
                          4. 重新启动系统。 (也许这就是诀窍)

                          【讨论】:

                            【解决方案15】:

                            您的网站在http://localhost:8000 运行 尝试更改您的端口。比如 3000 或 8080。

                            app.listen(3000)

                            我的 8080 帖子被占用了,所以我遇到了同样的错误

                            【讨论】:

                              【解决方案16】:

                              确保在同一端口上打开新的节点连接之前,您已经关闭了之前的节点连接。

                              请先尝试关闭之前的连接,然后再打开新的连接!

                              【讨论】:

                                【解决方案17】:

                                我已在 Mac OS 上将我的 hosts 文件恢复到原始状态,它对我有用。我昨天编辑了这个文件,它产生了问题。在本站可以复制原文件https://pbxbook.com/other/mac-host.html的文字

                                【讨论】:

                                • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
                                • 关于主机文件的非常有用和有用的链接,但是,它不能回答问题。
                                【解决方案18】:
                                sudo npm start
                                

                                这应该适合你

                                【讨论】:

                                  【解决方案19】:

                                  在我的情况下,这个错误是由一个非常大的项目导致的,文件太多,然后inotify无法检查,需要提高手表的数量。这修复了我的错误。

                                  echo 1048576 > /proc/sys/fs/inotify/max_user_watches
                                  

                                  【讨论】:

                                    【解决方案20】:

                                    我试图从一开始就安装 Vue CLI 4 (VueJS 3) 应用程序。所以,问题出在节点和npm 的版本中。目前 Node 的实际版本是 17。但是对于稳定的 Vue CLI 4 需要 Node >= 10。

                                    我使用nvm。所以更改为降级的节点对我有用:

                                    nvm use 10.24.1
                                    

                                    【讨论】:

                                      【解决方案21】:

                                      遇到了同样的问题,上面的解决方案都没有解决它。

                                      Server started on port 3000
                                      node:events:368
                                            throw er; // Unhandled 'error' event
                                            ^
                                      
                                      Error: getaddrinfo ENOTFOUND listening
                                          at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:71:26)
                                      Emitted 'error' event on Server instance at:
                                          at GetAddrInfoReqWrap.doListen [as callback] (node:net:1517:12)
                                          at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:71:17) {
                                        errno: -3008,
                                        code: 'ENOTFOUND',
                                        syscall: 'getaddrinfo',
                                        hostname: 'listening'
                                      }
                                      

                                      我确实注意到节点正在尝试访问名为“正在侦听”的主机。所以我将它添加到我的主机文件中并“修复”了它。

                                      127.0.0.1 listening
                                      

                                      【讨论】:

                                        【解决方案22】:

                                        只需在终端中运行此命令

                                        echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

                                        【讨论】:

                                          【解决方案23】:

                                          这对我有用

                                          npm install react-scripts@2.1.8
                                          npm start
                                          

                                          【讨论】:

                                          • 这已经在问题 cmets 以及另一个答案中提出。我建议删除此答案。
                                          猜你喜欢
                                          • 2019-08-21
                                          • 2020-12-12
                                          • 2018-05-04
                                          • 2019-11-10
                                          • 2018-07-23
                                          • 2015-03-01
                                          • 2019-01-27
                                          • 2019-12-14
                                          • 2019-01-08
                                          相关资源
                                          最近更新 更多