在 Node.js 开发过程中,我们经常需要在各种环境下使用不同的配置参数。这些参数可以是数据库连接信息、域名、邮件服务器等等,在不同的环境中这些配置信息也是不同的。
在部署 Node.js 应用时,我们通常使用 PM2 进行进程管理。在 PM2 中,我们可以方便地配置应用的环境变量,使得在启动应用时,它可以使用正确的配置信息。下面我们将介绍如何在 PM2 中配置 Node.js 应用的环境变量。
环境变量的作用
在 Node.js 应用中,我们通常使用 process.env
对象来获取环境变量。这个对象中保存了当前进程的所有环境变量及其值。
例如,我们想在应用中获取某个环境变量 PORT
的值,可以使用以下代码:
const port = process.env.PORT || 3000;
这样做的好处是可维护性更高,我们可以将应用的配置信息都放在环境变量中,避免硬编码,方便在不同环境中切换。
在 PM2 中配置环境变量
在 PM2 中,我们可以通过以下方式配置应用的环境变量:
1. 使用 --env
参数
启动 PM2 进程时,可以使用 --env
参数指定环境变量文件:
pm2 start app.js --env production
这里,我们将应用的环境变量文件命名为 production.json
,并放在项目根目录下的 config
文件夹中。在 production.json
文件中,我们可以定义所有生产环境下的配置信息,例如:
{ "PORT": 8000, "DB_HOST": "127.0.0.1", "DB_PORT": 3306, "DB_USER": "root", "DB_PASSWORD": "password" }
在应用中,可以通过以下方式获取这些环境变量:
const port = process.env.PORT || 3000; const dbHost = process.env.DB_HOST || 'localhost'; const dbPort = process.env.DB_PORT || 5432; const dbUser = process.env.DB_USER || 'root'; const dbPass = process.env.DB_PASSWORD || '';
2. 使用 --env-file
参数
使用 --env-file
参数,可以将环境变量文件的位置和文件名一起指定:
pm2 start app.js --env-file /path/to/production.json
这里,我们将环境变量文件 production.json
放在了 /path/to/
目录下。在应用中,可以按照上面的方式获取这些环境变量。
3. 使用 --set
参数
使用 --set
参数,可以在启动时直接设置单个环境变量:
pm2 start app.js --set DB_HOST=localhost
这里,我们将 DB_HOST
的值设置为 localhost
,在应用中可以通过以下方式获取这个环境变量:
const dbHost = process.env.DB_HOST || '127.0.0.1';
4. 使用 ecosystem.config.js
配置文件
在 PM2 中,还可以使用 ecosystem.config.js
配置文件来配置应用的环境变量。
首先,我们需要在 ecosystem.config.js
文件中定义不同环境下的配置信息,例如:
-- -------------------- ---- ------- -------------- - - ----- - - ----- --- ----- ------- ----------- ---- - ----- ----- -------- ------------ -------- ----- -------- ------- ------------ ---------- -- --------------- - --------- ------------- ----- --- -------- ------------ -------- ----- -------- ------------ ------------ ----------- - - - -
这里,我们将生产环境的配置信息放在 env_production
对象中,其他环境的配置信息则放在 env
对象中。在应用中,可以按照上面的方式获取这些环境变量。
然后,我们可以使用以下命令启动应用:
pm2 start ecosystem.config.js --env production
这里,我们使用 --env
参数指定启动生产环境的应用。
总结
PM2 是一个非常好用的 Node.js 进程管理工具,它支持环境变量的配置,让我们可以轻松地在不同的环境中切换配置信息。我们可以使用 --env
参数、--env-file
参数、--set
参数或者 ecosystem.config.js
配置文件来配置应用的环境变量。这些方法都非常简单易用,让我们的部署工作变得更加方便。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/648c639d48841e9894abdaa3