nodejs 使用不同环境的配置文件

想让nodejs能像springboot有yml文件可以区分不同环境的配置,启动使用的时候不需要更改代码。

1.先创建一个config文件夹

nodejs 使用不同环境的配置文件_第1张图片

2.创建一个index.js,根据启动传入的参数判断加载哪个环境的配置文件,我这里是默认启动生产环境的配置文件

var path = require('path');
console.log(process.env.NODE_ENV)
// 通过NODE_ENV来设置环境变量,如果没有指定则默认为生产环境
var env = process.env.NODE_ENV || 'production';
env = env.toLowerCase();

// 载入配置文件
var file = path.resolve(__dirname, env);
try {
    var config = module.exports = require(file);
    console.log('Load config: [%s] %s', env, file);
} catch (err) {
    console.error('Cannot load config: [%s] %s', env, file);
    throw err;
}

3.分别写一个 test.js 和production.js

module.exports = {
    sdk : {
        appid:"123",
        appsecret:"xxx",
        redirect_uri:"https://debug.xx.com/node/wechat/userinfo/callback?productId="
    }, drainage : {
        appid:"123",
        appsecret:"xx",
        redirect_uri:"https://debug.xx.com/node/wechat/userinfo/callback?productId="
    },
    redis:{
        host:"xxx.xxx.xxx.xx",
        port:6379,
        passwd:"muxing123"

    }

};

4.其他文件引用和使用

var config = require('../config');
var redis = require('redis'),
    RDS_PORT = config.redis.port,        //端口号
    RDS_HOST = config.redis.host,    //服务器IP
    RDS_PWD = config.redis.passwd,
    RDS_OPTS = {auth_pass: RDS_PWD},            //设置项
    client = redis.createClient(RDS_PORT, RDS_HOST, RDS_OPTS),
    subClient = redis.createClient(RDS_PORT, RDS_HOST, RDS_OPTS),
    pubClient = redis.createClient(RDS_PORT, RDS_HOST, RDS_OPTS);

client.on('ready', function (res) {
    console.log('ready');
});

如果参数是变量的使用方式

appid = config[proType].appid
appsecret = config[proType].appsecret;

在package.json文件修改scripts,我这里用到了PM2,具体使用自行查阅

"scripts": {
  "dev": "NODE_ENV=development DEBUG=wechat nodemon ./bin/www --name wechat --watch ",
  "start": "NODE_ENV=production pm2 start ./bin/www  -i 3 --name wechat --watch ",
  "test": "NODE_ENV=test pm2 start ./bin/www  -i 3 --name wechat --watch "
}

启动命令

npm start 启动生产环境

npm test 启动测试环境

npm start 、test、 dev 是linux环境下使用的命令

 

转载于:https://my.oschina.net/u/2270256/blog/3009519

你可能感兴趣的:(nodejs 使用不同环境的配置文件)