You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pm2启动Node.js API时读取config.env环境变量?

解决PM2启动Node.js服务无法读取config.env环境变量的问题

你用nodemon时--env-file是nodemon自身支持的参数,但PM2里-- --env-file是把参数传给Node进程,而Node本身不识别这个参数,所以才读不到环境变量。下面给几种可行的解决方式:

方案1:使用PM2配置文件(推荐)

创建ecosystem.config.js配置文件,直接在里面指定环境变量文件路径:

module.exports = {
  apps: [{
    name: 'your-api-service',
    script: 'server.js',
    env: {
      NODE_ENV: 'prod'
    },
    // 关联你的环境变量文件
    env_file: './config.env'
  }]
};

然后用配置文件启动服务:

pm2 start ecosystem.config.js

方案2:在代码中主动加载环境变量(通用适配)

安装dotenv包,让Node.js代码自己读取config.env,不管用什么工具启动都能生效:

npm install dotenv --save

在server.js的最顶部添加代码:

require('dotenv').config({ path: './config.env' });

之后PM2启动命令直接用:

pm2 start server.js --env prod

方案3:通过Shell先加载环境变量再启动PM2

用source命令先加载config.env里的变量,再启动PM2:

source config.env && NODE_ENV=prod pm2 start server.js

注意:这种方式要求config.env的格式符合Shell变量定义(比如KEY=VALUE,不要加多余引号)。

内容的提问来源于stack exchange,提问作者Raphael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 08:42:02