NodeJS 实现环境配置

NodeJS 实现环境配置

技术杂谈小彩虹2021-08-25 17:48:13180A+A-

背景

近期开坑 NodeJS 开发,该文主要实现了根据不同的环境变量加载 JSON 内的不同服务器配置

编写 config.json 提供服务器配置

config.json 内存储了不同环境下的各服务器配置,该例包含 development、staging、production 三个环境:

{
"development": {
"PORT": 3000,
"MONGODB_URI": "mongodb://localhost:27017/baoheJM",
"DB":"baoheJM"
},
"staging": {
"PORT": 9201,
"MONGODB_URI": "mongodb://localhost:27017/baoheJM-STA",
"DB":"baoheJM-STA"
},
"production": {
"PORT": 9201,
"MONGODB_URI": "mongodb://localhost:27017/baoheJM-PRO",
"DB":"baoheJM-PRO"
}
}

编写 config.js 加载服务器配置

config.js 内根据环境变量 NODE_ENV 加载了对应的各个环境变量配置,并默认使用 development:

let env = process.env.NODE_ENV || 'development';
if (env === 'development' || env === 'staging' || env === 'production') {
console.log('server config loaded');
console.log(env);
const config = require('./config.json');
Object.assign(process.env, config[env]);
}

使用环境变量内的配置

使用时在 NodeJS 项目内 require('./config/config'); 即可加载,并通过 process.env.params 拿到各个配置,例如 express 的后台项目可通过该方式来区分不同环境下的端口号:

const app = require('../app');
const http = require('http');

const port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
const server = http.createServer(app);

在 package.json 内编写不同环境的启动命令

通过 export NODE_ENV=development || SET \"NODE_ENV=development\" 来分别设置 Linux 和 Windows 系列系统的环境变量后再启动 NodeJS 项目即可真正加载不同的环境变量配置。

"scripts": {
"start-dev": "export NODE_ENV=development || SET \"NODE_ENV=development\" && pm2 start ./bin/www --name baoheJM-dev",
"start-sta": "export NODE_ENV=staging || SET \"NODE_ENV=staging\" && pm2 start ./bin/www --name baoheJM-sta",
"start-pro": "export NODE_ENV=production || SET \"NODE_ENV=production\" && pm2 start ./bin/www --name baoheJM-pro"
},

点击这里复制本文地址 以上内容由权冠洲的博客整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

联系我们| 本站介绍| 留言建议 | 交换友链 | 域名展示
本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除

权冠洲的博客 © All Rights Reserved.  Copyright quanguanzhou.top All Rights Reserved
苏公网安备 32030302000848号   苏ICP备20033101号-1
本网站由 提供CDN/云存储服务

联系我们