我在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吗?
答案 0 :(得分:1)
您可以在同一目录上使用Angular和Express,在express上使用中间件,因此,当您请求时,中间件会确定它是“ / data” URL还是简单的URL,并发送由angular生成的索引文件dist文件夹。
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上运行。