Node.js+Express+Mysql服务添加环境变量

1、使用dotenv插件

1)安装插件:npm install dotenv-cli --save-dev

2)在项目根目录下添加对应的 .env 配置文件;

javascript 复制代码
// .env配置文件内容
MODE='development',
BASE_URL='http://127.0.0.1:8081'

3) 在启动命令中设置对应的加载文件:dotenv -e .env.xxxx

javascript 复制代码
// package.json文件
...
  "scripts": {
    "nodemon-serve": "nodemon app.js",
    "nodemon-serve:test": "dotenv -e .env.test nodemon app.js",
    "nodemon-serve:prod": "dotenv -e .env.production nodemon app.js",
    "serve": "dotenv -e .env.production nodemon app.js",
    "serve:local": "node app.js",
    ...
  }

4)在入口文件app.js中引入dotenv插件,并加载默认配置文件

javascript 复制代码
// app.js文件
...
// 默认加载的是.env文件
require('dotenv').config();

// 使用 process.env.xxx 访问配置文件中对应key的内容
console.log('BASE_URL:', process.env.BASE_URL);
console.log('MODE:', process.env.MODE);



2、在package.json文件的运行命令中设置NODE_ENV环境变量,根据环境变量的值读取对应的配置文件

javascript 复制代码
// package.json文件
...
"scripts": {
    "nodemon-serve": "set NODE_ENV=development && nodemon app.js",
    "nodemon-serve:test": "set NODE_ENV=test && nodemon app.js",
    "nodemon-serve:prod": "set NODE_ENV=production && nodemon app.js",
 }

2)通过process.env.NODE_ENV访问设置的环境变量

javascript 复制代码
// app.js文件
...
console.log('NODE_ENV:', process.env.NODE_ENV.trim());


相关推荐
None3214 小时前
【NestJs】基于Redlock装饰器分布式锁设计与实现
后端·node.js
Gogo11219 小时前
构建高性能 Node.js 集中式日志体系 (下篇):Pino + PM2 + OpenSearch 代码落地实战
node.js
小岛前端9 小时前
Node.js 宣布重大调整,运行十年的规则要改了!
前端·node.js
前端付豪10 小时前
Nest 项目小实践之前端注册登陆
前端·node.js·nestjs
codingWhat1 天前
整理「祖传」代码,就是在开发脚手架?
前端·javascript·node.js
ServBay1 天前
Node.js、Bun 与 Deno,2026 年后端运行时选择指南
node.js·deno·bun
码路飞1 天前
Node.js 中间层我维护了两年,这周终于摊牌了——成本账单算完我人傻了
node.js
None3212 天前
【NestJs】使用Winston+ELK分布式链路追踪日志采集
javascript·node.js
于眠牧北2 天前
MySQL的锁类型,表锁,行锁,MVCC中所使用的临键锁
mysql
Dilettante2582 天前
这一招让 Node 后端服务启动速度提升 75%!
typescript·node.js