在写node后端项目时,我们也需要区分开发环境和生产环境,那么如何解析不同环境下的环境变量呢?
前端通过--mode 来区分开发环境或生产环境,然后执行不同的命令,构建工具判断当前环境为我们解析出了相应的环境变量。那么下面我们就模仿这种思路来实现后端项目的环境变量的解析。
一、安装dotenv
npm i dotenv
二、设置环境变量
在package.json文件中定义执行脚本,使用set设置NODE_ENV的值
"scripts": {
"dev": "set NODE_ENV=development&& nodemon src/main.js",
"pro": "set NODE_ENV=production&& nodemon src/main.js"
},
三、创建.env文件
编辑不同环境文件下的变量
APP_PORT = 18080
APP_HOST = http://localhost
MYSQL_HOST = localhost
MYSQL_PORT = 3306
MYSQL_USER = root
MYSQL_PASSWORD = 123456
MYSQL_DATABASE = abcde
三、根据NODE_ENV来加载特定的.env文件
const dotenv = require("dotenv");
const fs = require("fs");
const path = require("path");
// 读取到环境变量
console.log(process.env.NODE_ENV, "环境变量");
const env = process.env.NODE_ENV;
let config;
if (env === "development") {
config = dotenv.parse(fs.readFileSync(".env.development"));
} else {
config = dotenv.parse(fs.readFileSync(".env.production"));
}
console.log(config, "config");
for (const k in config) {
process.env[k] = config[k];
}