几个月来我一直在开发一个网络应用程序(前面是 Angular,后面是 Node/Express/Mongo)。
我在 localhost:4200 上运行 Angular,在 localhost:3000 上运行 Node
我们团队中的一些人在他们计算机上运行的虚拟机中运行后端。
为了让应用程序在这两种情况下都能正常工作,我们编辑了 Windows 主机文件,使应用程序指向正确的位置(VM 或本地计算机的背面)
127.0.0.1 我的网站
使用 VM 的开发人员将 127.0.0.1 更改为其 VM 的 IP。
一切顺利。
几天前,我们公司在每台 PC 上都安装了 bitlocker,我相信这导致我们的设置因不使用 VM(不受 bitlocker 影响)的每个人而中断
在 localhost 上工作的人开始从前端应用程序接收:
OPTIONS http://mysite:3000/auth/login 426 (Upgrade Required)
请求甚至没有到达 Node 服务器。看起来他们被重定向到 websocket 服务器?
如果我将请求更改为目标 localhost:3000,该应用程序将再次运行,但我们会丢失在 VM 上工作的人员的设置。 (因此,如果我们每次都需要更改基本 url,那么提交代码会变得很烦人)
我可以为每个案例创建一个环境,但它并不干净,我想知道它为什么突然崩溃。
最佳答案
尝试将端口从 3000 更改为其他端口。
我刚遇到这个问题,当时一位同事尝试运行我们第一次在 Windows 机器上构建的 express 应用程序,而不是 EC2 实例。我在开发期间一直在使用 Mac。
问题似乎是 0.0.0.0:3000 已经映射到公司的 Windows 机器上。如果您在命令提示符下运行 netstat -an
,您可能会看到它已在使用中。
关于node.js - 需要完成 426 升级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55045807/