Node.js azure中的前端和后端分离

Node.js azure中的前端和后端分离,node.js,azure,azure-web-app-service,Node.js,Azure,Azure Web App Service,我正在开发一个简单的站点,包括一个有角度的前端和一个简单的NodeJS后端。我目前看到3种设置项目的方法: 有1个Web应用程序为静态HTML提供服务,1个Web应用程序为NodeJS后端提供服务 使用相同的NodeJS实例为restapi和静态文件提供服务 我阅读了Azure Web应用程序的虚拟目录,但未能找到适当的文档。这是一个可行的解决方案吗 Azure的标准设置是什么?有没有我遗漏的任何深入的文档?我想说,这是一种很难得到答案的问题,因为有人可以就这个主题写一整本书,很多方面都是个

我正在开发一个简单的站点,包括一个有角度的前端和一个简单的NodeJS后端。我目前看到3种设置项目的方法:

  • 有1个Web应用程序为静态HTML提供服务,1个Web应用程序为NodeJS后端提供服务
  • 使用相同的NodeJS实例为restapi和静态文件提供服务
  • 我阅读了Azure Web应用程序的虚拟目录,但未能找到适当的文档。这是一个可行的解决方案吗

Azure的标准设置是什么?有没有我遗漏的任何深入的文档?

我想说,这是一种很难得到答案的问题,因为有人可以就这个主题写一整本书,很多方面都是个人偏好、方法等的问题

在尝试第一个答案之前,我想指出我对Node.js一点也不熟悉,但我对Azure AppService和ASP.Net核心MVC相当熟悉

Azure AppService(本例中为网站)中没有标准设置,事实上,您提到的所有3个选项都是有效的。根据我在Azure AppService方面的经验,我认为当您有一个公开可用的API时,选项1是合适的。在这种情况下,您还可以向Azure管理API注册API

在我看来,当前端是API的唯一消费者时,第二种选择是最合适的

第三种选择并不常见,但有100%的可能性。这是一篇关于如何设置虚拟目录以及如何使用VisualStudio将应用程序部署到虚拟目录的非常好的文章。我不确定如何使用您可以使用的工具来完成这项工作,但从概念上讲,这应该是可能的。但是,在虚拟目录中部署NODE.js项目可能会导致一些问题,您应该做好准备。更多信息

然而,我会坚持我在一开始所说的:如果我的Angular应用程序是API的唯一消费者,我会将后端和前端部署到同一个web应用程序,如果我的API是公共的,我会部署到两个不同的web应用程序


我很好奇其他人在这方面会怎么想。

我想说,这是一种很难得到答案的问题,因为有人可以就这个话题写一整本书,很多方面都是个人偏好、方法等的问题

在尝试第一个答案之前,我想指出我对Node.js一点也不熟悉,但我对Azure AppService和ASP.Net核心MVC相当熟悉

Azure AppService(本例中为网站)中没有标准设置,事实上,您提到的所有3个选项都是有效的。根据我在Azure AppService方面的经验,我认为当您有一个公开可用的API时,选项1是合适的。在这种情况下,您还可以向Azure管理API注册API

在我看来,当前端是API的唯一消费者时,第二种选择是最合适的

第三种选择并不常见,但有100%的可能性。这是一篇关于如何设置虚拟目录以及如何使用VisualStudio将应用程序部署到虚拟目录的非常好的文章。我不确定如何使用您可以使用的工具来完成这项工作,但从概念上讲,这应该是可能的。但是,在虚拟目录中部署NODE.js项目可能会导致一些问题,您应该做好准备。更多信息

然而,我会坚持我在一开始所说的:如果我的Angular应用程序是API的唯一消费者,我会将后端和前端部署到同一个web应用程序,如果我的API是公共的,我会部署到两个不同的web应用程序


我很好奇其他人会怎么想。

不知道为什么这个问题会得到这么多的反对票。这是一个完全正确的问题。我不知道虚拟目录,但我认为你的评论对1对2网络应用是有效的。拥有一个公共API并不一定意味着最好有两个web应用程序,尽管这是值得考虑的。你真正想问自己的是,即使我想关闭我的网站一段时间,我的API是否需要可用?那么两个网络应用程序就好了。否则,一个web应用程序就可以很好地完成这项工作。一个静态服务的站点,前端是angular,后端是node,做得很好!我的想法大致相同,但表达方式略有不同。然而,使用虚拟目录是我建议的最后手段,即使它应该是可能的,正如答案中提到的。另外,我也不知道你为什么会落选:(不是我:)不知道为什么这个问题会得到这么多的落选票。这是一个完全正确的问题。我不知道虚拟目录,但我认为你的评论对1对2网络应用是有效的。拥有一个公共API并不一定意味着最好有两个web应用程序,尽管这是值得考虑的。你真正想问自己的是,即使我想关闭我的网站一段时间,我的API是否需要可用?那么两个网络应用程序就好了。否则,一个web应用程序就可以很好地完成这项工作。一个静态服务的站点,前端是angular,后端是node,做得很好!我的想法大致相同,但表达方式略有不同。然而,使用虚拟目录是我建议的最后手段,即使它应该是可能的,正如答案中提到的。另外,我也不知道你为什么会落选:(不是我:)