单个Azure Web应用程序中具有Angular前端的节点/快速后端

时间:2019-06-19 21:32:32

标签: node.js angular express azure-web-app-service

我在dev中有一个Node / Express设置,该输出将数据作为JSON输出以供使用。在开发人员中,端点为localhost:3000 / data

我在前端的同一节点目录中也有一个Angular 8应用程序。在开发人员中,我启动了两个单独的Node命令提示符……一个在端口3000上运行node / express,另一个在4200端口上运行angular。

目标是让Angular应用在Azure Web App中输出Node / Express后端提供的数据...。

我已经阅读了有关如何将Angular部署到WebApp的文章,但是我可以在单个Azure Web App中同时运行Node / Express后端服务数据和Angular应用程序吗?还是需要创建两个单独的应用程序,并在前端使用CORS列表与后端Web应用程序对话?

我猜我需要使用Express启动Angular,然后执行构建,而不是在单独的端口上运行Express和Angular吗?

1 个答案:

答案 0 :(得分:1)

您可以在同一目录上使用Angular和Express,在express上使用中间件,因此,当您请求时,中间件会确定它是“ / data” URL还是简单的URL,并发送由angular生成的索引文件dist文件夹。

  1. 将app.js移至Angular应用文件夹
  2. 插入此代码;
     app.use(express.static(path.join(__dirname, '/dist/<your Angular App Name>')));

     app.use('/data', <your route file>);
     app.use(function(req, res) {
     res.sendFile(path.join(__dirname, '/dist/<your Angular App Name>', 'index.html'));

有了这个,您的Angular和Express就可以在localhost:3000上运行。