第一次在这里提出问题,请告诉我,如果我错过了任何最佳做法。
我正在开发一个角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)
铬控制台显示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上将应用程序清除)之间的所有与应用程序相关的设置保持相同,但错误仍然存在于其中一台而不是另一台计算机上。
有人能给我一些建议吗?我应该看看哪里或者下一步该做些什么来找出这个问题的根源?谢谢!
我至今所做的事:
nodejs版本: 6.10.3
npm版本: 5.6.0
发布于 2017-12-05 04:31:33
根据朋友的建议,我最后跑了
sudo lsof -i :9000
看看9000中是否有任何可能干扰端口的东西。在节点服务器运行时,在运行的同一个端口中,最终只有很少的php侦听器--而这些php侦听器是错误的罪魁祸首。
所以我运行下面的命令来杀死侦听器和问题,因为问题已经解决了。
kill -kill `lsof -t -i tcp:9000`
不知道为什么节点没有抛出“使用中的端口”错误,但是现在它已经解决了。
这个故事的基本原理:检查您的端口,以确保它没有被占用。
https://stackoverflow.com/questions/47637416
复制