Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。但是使用NodeJS开发还是要根据不同的环境变量加载 JSON 内的不同服务器配置,下面我们来看看NodeJS如何实现环境配置。
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 内根据环境变量 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);
通过 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"
},
上述的NodeJS环境配置实例是从动力节点在线的视频课程中摘录的部分代码,想要深入学习NodeJS如何实现环境配置的小伙伴请到动力节点在线的视频课程中慢慢学习,打好基础才能稳扎稳打,学好NodeJS技术。
代码小兵49806-11 15:28
代码小兵49806-11 15:51
代码小兵49806-11 16:22
代码小兵51603-29 17:28
暴风城-小飞04-06 20:49