Node.js 使用NodeJs和Express部署Web应用程序

Node.js 使用NodeJs和Express部署Web应用程序,node.js,backend,web-deployment,devops,progressive-web-apps,Node.js,Backend,Web Deployment,Devops,Progressive Web Apps,我的问题更多的是询问人们现在如何部署生产web应用程序/最佳方法等 目前,我们正在寻找投入生产的网络应用程序与NodeJS后端使用快车以及前端我们已经作出 将前端和后端拆分到各自独立的服务器上,或者直接从一台服务器上的NodeJS后端呈现HTML文件,这有意义吗 如果您有任何其他建议,请列出优点/缺点以及由多人组成的开发团队如何轻松管理源代码,因为有单独的人员分为前端和后端 注意:这是实际的web应用程序,不是静态站点或登录页我最近经历了这个决策过程,我选择将系统的静态和动态部分一起部署 如何决

我的问题更多的是询问人们现在如何部署生产web应用程序/最佳方法等

目前,我们正在寻找投入生产的网络应用程序与NodeJS后端使用快车以及前端我们已经作出

将前端和后端拆分到各自独立的服务器上,或者直接从一台服务器上的NodeJS后端呈现HTML文件,这有意义吗

如果您有任何其他建议,请列出优点/缺点以及由多人组成的开发团队如何轻松管理源代码,因为有单独的人员分为前端和后端


注意:这是实际的web应用程序,不是静态站点或登录页

我最近经历了这个决策过程,我选择将系统的静态和动态部分一起部署

如何决定这个问题

你的前端和后端紧密地绑在一起了吗?许多前端更改是否需要相应的后端更改?如果是这样的话,这就是在一台服务器上同时部署这两者的原因。这就是我的处境

使用express的静态对象服务器功能提供静态HTML/Javascript/CSS/图像资源有意义吗?它可能会:Express让你做一些好事,比如
.js
缩小,动态翻译
.less
.sass
文件,等等。它还具有处理COR、速率限制和其他信息安全功能的良好功能。如果您想要这些东西,这就是在一台服务器上同时部署这两个东西的原因。这也是我的处境

您是否会安装一个面向网络的反向代理(nginx)服务器?这是一项非常棘手的配置任务,您可能希望只执行一次,而不是两次。这就是在单个服务器中同时部署这两个服务器的原因。我的处境

你有很多静态对象要服务吗?这就是分别部署静态对象和web应用程序的原因:纯apache或nginx比node更适合服务静态内容。我只有几个静态对象

在您的devops中,两个单独的部署是否有可能使事情变得更复杂、更不可靠?(有人会忘记同时部署静态和动态吗?)。我之所以这样做是因为我希望测试、登台和生产部署能够相同地工作


Git和其他源代码控制系统足够强大,允许团队在不影响彼此工作的情况下为单个回购做出贡献。

我最近经历了这个决策过程,我选择将系统的静态和动态部分一起部署

如何决定这个问题

你的前端和后端紧密地绑在一起了吗?许多前端更改是否需要相应的后端更改?如果是这样的话,这就是在一台服务器上同时部署这两者的原因。这就是我的处境

使用express的静态对象服务器功能提供静态HTML/Javascript/CSS/图像资源有意义吗?它可能会:Express让你做一些好事,比如
.js
缩小,动态翻译
.less
.sass
文件,等等。它还具有处理COR、速率限制和其他信息安全功能的良好功能。如果您想要这些东西,这就是在一台服务器上同时部署这两个东西的原因。这也是我的处境

您是否会安装一个面向网络的反向代理(nginx)服务器?这是一项非常棘手的配置任务,您可能希望只执行一次,而不是两次。这就是在单个服务器中同时部署这两个服务器的原因。我的处境

你有很多静态对象要服务吗?这就是分别部署静态对象和web应用程序的原因:纯apache或nginx比node更适合服务静态内容。我只有几个静态对象

在您的devops中,两个单独的部署是否有可能使事情变得更复杂、更不可靠?(有人会忘记同时部署静态和动态吗?)。我之所以这样做是因为我希望测试、登台和生产部署能够相同地工作


Git和其他源代码管理系统足够强大,允许团队在不影响彼此工作的情况下为单个回购做出贡献。

感谢快速响应和良好的书面回答!您是通过使用中间件来保持路由名称不带文件扩展名来处理节点中的静态文件服务,还是只保留文件扩展名?谢谢我保留了分机;我的静态对象主要是.png、.css。js和其他类似文件。删除这些扩展将使我的html变得更加难以理解,让下一个处理它的人难以理解。应该指定。我的意思是,如果你有任何.html文件,你可以提供静态的链接,以获得快速的响应和良好的答案!您是通过使用中间件来保持路由名称不带文件扩展名来处理节点中的静态文件服务,还是只保留文件扩展名?谢谢我保留了分机;我的静态对象主要是.png、.css。js和其他类似文件。删除这些扩展将使我的html变得更加难以理解,让下一个处理它的人难以理解。应该指定。我的意思是如果你有任何静态提供的.html文件