Node.js 如何配置expressjs以在生产模式下提供index.html?

Node.js 如何配置expressjs以在生产模式下提供index.html?,node.js,production,Node.js,Production,我正在尝试将我的应用程序部署到本地计算机以模拟部署过程。你管它叫登台模式或其他什么。我使用的工具包括pm2和Nginx 当我在项目中直接使用pm2 start server.js运行我的应用程序时,我可以使用我的web应用程序。客户端可以通过Nginx服务器访问index.html文件。但我认为这不是生产模式,除非我也使用--env production 因此,我将所有需要的文件复制到我的项目的dist目录中,配置Nginx以提供静态内容,在我的源代码中,我想使用 app.get('/', fu

我正在尝试将我的应用程序部署到本地计算机以模拟部署过程。你管它叫登台模式或其他什么。我使用的工具包括pm2和Nginx

当我在项目中直接使用
pm2 start server.js
运行我的应用程序时,我可以使用我的web应用程序。客户端可以通过Nginx服务器访问
index.html
文件。但我认为这不是生产模式,除非我也使用
--env production

因此,我将所有需要的文件复制到我的项目的
dist
目录中,配置Nginx以提供静态内容,在我的源代码中,我想使用

app.get('/', function(req, res) {
    res.sendFile('index.html', {root: somePath});
});
允许客户端访问express server上的
index.html
文件。但是我不确定要在somePath中放入什么?在将项目部署到服务器时,我将服务器端和客户端分开。例如,我的服务器端在
/usr/path/server
上,但我的客户端在
/etc/shared/html
上。如果我弄乱了路径,我将从中得到一条“禁止”的错误消息
express当我访问
index.html

时,如果您希望在开发过程中实现类似于生产的可重复性,那么您应该使用相同的工具实现相同的功能


现在是解决这个问题的最好办法。作为开始,您应该有两个容器,第一个是nginx,第二个是pm2。此外,您还应该将静态文件的卷绑定/装载到nginx。

如果您希望在开发过程中实现类似于生产的可重复性,那么您应该使用相同的工具实现相同的功能


现在是解决这个问题的最好办法。作为开始,您应该有两个容器,第一个是nginx,第二个是pm2。您还应该将静态文件的卷绑定/装载到nginx。

您的代码应该是这样的

 var path = require('path');
 var virtualDirPath = process.env.virtualDirPath || '';
 var appDir = path.dirname(require.main.filename) + virtualDirPath;
appDir将提供环境目录,您可以从该目录访问
html
文件


希望有帮助:)

您的代码应该是这样的

 var path = require('path');
 var virtualDirPath = process.env.virtualDirPath || '';
 var appDir = path.dirname(require.main.filename) + virtualDirPath;
appDir将提供环境目录,您可以从该目录访问
html
文件


希望有帮助:)

我想你应该使用这个@ArtemIlchenko,我正在使用Nginx来提供静态内容。我为什么要使用这个模块?我想你应该使用这个@ArtemIlchenko,我正在使用Nginx来提供静态内容。我为什么要使用此模块?是的,我计划稍后使用docker。在我看来,docker compose是以类似于产品的方式演示应用程序的最简单的解决方案。如果你需要更快更脏的东西,那么你可以使用代码破解(例如:从@ArtemIlchenko advice提供静态服务)或简单免费的工具在互联网上发布(例如:)是的,我计划稍后使用docker。在我看来,docker compose是以类似于产品的方式演示应用程序的最简单的解决方案。如果您需要更快更脏的东西,那么您可以使用代码破解(例如:从@ArtemIlchenko advice提供静态服务)或简单免费的工具在internet上发布(例如:)