【问题标题】:Angular Cli proxy working in one env but return ECONNRESET in anotherAngular Cli 代理在一个环境中工作,但在另一个环境中返回 ECONNRESET
【发布时间】:2017-12-04 16:08:24
【问题描述】:

第一次在这里提问,如果我遗漏了任何最佳做法,请告诉我。

我正在开发一个 Angular 4 应用程序,它使用代理来简化应用程序前端和后端之间的通信。

代理设置如下:

 {
  "/api": {
    "target": "http://localhost:9000",
    "secure": false
  },
  "/auth": {
    "target": "http://localhost:9000",
    "secure": false
  }
}

在我的主计算机中,当我运行将调用代理的应用程序部分时,我收到以下错误。

[HPM] Error occurred while trying to proxy request /auth/google from localhost:4200 to http://localhost:9000 (ECONNRESET) (https://nodejs.org/api/errors.html#errors_common_system_errors)

chrome 控制台显示 504 错误。

我用来运行所有服务器的命令

concurrently \"mongod\" \"ng serve -pc proxy.conf.json --open\" \"tsc -w -p server\" \"nodemon dist/server/app.js\"

在构建应用程序时,我可以看到程序已经设置了代理,但仍然出现同样的错误。

[1] [HPM] Proxy created: /api/**  ->  http://localhost:9000
[1] [HPM] Subscribed to http-proxy events:  [ 'error', 'close' ]
[1] [HPM] Proxy created: /auth/**  ->  http://localhost:9000
[1] [HPM] Subscribed to http-proxy events:  [ 'error', 'close' ]

但是,当我尝试在我拥有的另一台计算机上运行它时(完全相同的代码、节点设置、网络环境等),代理正在工作。

我尝试通过使两台计算机之间的所有应用程序相关设置相同(节点版本、npm 版本、清理安装所有节点包,甚至从两台计算机上的 github 拉取应用程序清理)来复制错误,但错误仍然存​​在一个,而不是另一个。

有人可以就我应该在哪里寻找或下一步应该做什么来确定这个问题的根本原因提出一些建议吗?谢谢!

到目前为止我做过的事情:

  • 重新安装所有 npm 包
  • 重启电脑
  • 再次从 git 拉取应用程序
  • 独立运行所有命令(用于数据库、服务器和客户端)

nodejs 版本:6.10.3

npm 版本:5.6.0

【问题讨论】:

    标签: node.js angular proxy


    【解决方案1】:

    根据朋友的建议,我最终跑了

    sudo lsof -i :9000
    

    查看 9000 中是否有任何可能干扰端口的内容。最终在节点服务器运行时运行的同一端口中很少有 php 侦听器 - 这些 php 侦听器是错误的罪魁祸首。

    所以我运行以下命令来杀死侦听器和问题,因为解决了。

    kill -kill `lsof -t -i tcp:9000`
    

    不知道为什么节点没有喷出“正在使用的端口”错误,但现在已经解决了。

    故事的基本原理:检查您的端口以确保其未被占用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-05
      • 1970-01-01
      • 2016-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多