您不能在同一端口上运行两个不同的应用程序。Angular-cli在运行时在后台使用nodejs服务器(从技术上讲是webpack-dev-
server)
ng serve,这意味着该端口已在使用中。
有两种可能的解决方案。
使用您的节点应用程序来提供静态前端文件。然后,您将无法真正使用
ng serve
(这可能是实时运行时要执行的操作)。使用具有不同端口的nodejs,并使用Angular的代理配置,以使Angular认为api端口实际上是4200(这在开发期间可能是最好的)。
我认为这主要是开发过程中的一个问题,因为您很可能不会(也不应该)使用
ng serve实时程序,因此选项2是我的最佳建议。
要配置代理,请在您的角度应用程序根目录中创建一个文件
proxy.config.json,其内容如下:
{ "/api/*": { "target": "http://localhost:3000", "secure": false, "changeOrigin": true }}然后,当您运行时
ng serve,可以
ng serve --proxy-config proxy.config.json改为运行它。
这是文档的链接
这是为生产而构建时的替代方法(上述解决方案1):
打造生产使用
ng build --prod,以创建一个生产就绪角度构建,然后(假设您在节点服务器上使用快递),使用类似
app.use(express.static('dist/'))的解释中Express文档。我自己不是在使用节点(我是在使用.NET Core),所以恐怕我无法提供更多详细信息。


