如何在 PM2 中配置 Node.js 应用的环境变量

阅读时长 5 分钟读完

在 Node.js 开发过程中,我们经常需要在各种环境下使用不同的配置参数。这些参数可以是数据库连接信息、域名、邮件服务器等等,在不同的环境中这些配置信息也是不同的。

在部署 Node.js 应用时,我们通常使用 PM2 进行进程管理。在 PM2 中,我们可以方便地配置应用的环境变量,使得在启动应用时,它可以使用正确的配置信息。下面我们将介绍如何在 PM2 中配置 Node.js 应用的环境变量。

环境变量的作用

在 Node.js 应用中,我们通常使用 process.env 对象来获取环境变量。这个对象中保存了当前进程的所有环境变量及其值。

例如,我们想在应用中获取某个环境变量 PORT 的值,可以使用以下代码:

这样做的好处是可维护性更高,我们可以将应用的配置信息都放在环境变量中,避免硬编码,方便在不同环境中切换。

在 PM2 中配置环境变量

在 PM2 中,我们可以通过以下方式配置应用的环境变量:

1. 使用 --env 参数

启动 PM2 进程时,可以使用 --env 参数指定环境变量文件:

这里,我们将应用的环境变量文件命名为 production.json,并放在项目根目录下的 config 文件夹中。在 production.json 文件中,我们可以定义所有生产环境下的配置信息,例如:

在应用中,可以通过以下方式获取这些环境变量:

2. 使用 --env-file 参数

使用 --env-file 参数,可以将环境变量文件的位置和文件名一起指定:

这里,我们将环境变量文件 production.json 放在了 /path/to/ 目录下。在应用中,可以按照上面的方式获取这些环境变量。

3. 使用 --set 参数

使用 --set 参数,可以在启动时直接设置单个环境变量:

这里,我们将 DB_HOST 的值设置为 localhost,在应用中可以通过以下方式获取这个环境变量:

4. 使用 ecosystem.config.js 配置文件

在 PM2 中,还可以使用 ecosystem.config.js 配置文件来配置应用的环境变量。

首先,我们需要在 ecosystem.config.js 文件中定义不同环境下的配置信息,例如:

-- -------------------- ---- -------
-------------- - -
  ----- -
    -
      ----- --- -----
      ------- -----------
      ---- -
        ----- -----
        -------- ------------
        -------- -----
        -------- -------
        ------------ ----------
      --
      --------------- -
        --------- -------------
        ----- ---
        -------- ------------
        -------- -----
        -------- ------------
        ------------ -----------
      -
    -
  -
-

这里,我们将生产环境的配置信息放在 env_production 对象中,其他环境的配置信息则放在 env 对象中。在应用中,可以按照上面的方式获取这些环境变量。

然后,我们可以使用以下命令启动应用:

这里,我们使用 --env 参数指定启动生产环境的应用。

总结

PM2 是一个非常好用的 Node.js 进程管理工具,它支持环境变量的配置,让我们可以轻松地在不同的环境中切换配置信息。我们可以使用 --env 参数、--env-file 参数、--set 参数或者 ecosystem.config.js 配置文件来配置应用的环境变量。这些方法都非常简单易用,让我们的部署工作变得更加方便。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/648c639d48841e9894abdaa3

纠错
反馈