Express4 环境变量配置

在进项项目开发中经常会遇到不同环境切换的问题,比如说开发环境和正式环境对应不同服务器的 mysql ,总不能每次切换不同环境的时候修改代码,这样既容易出错,也不利于代码维护,所以这个时候就需要用到环境变量来进行配置了。

开发环境

在开发环境中,我们一般链接的是本地服务器的 mysql ,这个时候我们可以通过以下设置来进行变量控制:

package.json

"scripts": {
    "start": "set NODE_ENV=development&& node ./bin/www",
    "devstart": "set NODE_ENV=development&& nodemon ./bin/www"
  }

需要注意的是 ...=development&&... development&& 之间不能有空格,否则之后在代码中进行判断的时候不等于'development'

上面的两个命令的区别是: devstart 是采用 nodemon ,修改Express代码之后有热重载的功能。

在代码里面就可以进行环境变量的判断:

db.js

if (process.env.NODE_ENV === 'development') {
    console.log('开发环境')
    var db = mysql.createPool({
        host: 'localhost',
        user: '',
        password: '',
        database: ''
    });
} else if (process.env.NODE_ENV === 'production') {
    console.log('正式环境')
    var db = mysql.createPool({
        host: '',
        user: '',
        password: '',
        database: ''
    });
}

正式环境

在正式环境中,当代码部署到 linux 服务器时,是需要使用 pm2 来进行配合处理的,上面代码不变。

pm2 ecosystem

生成配置文件。

ecosystem.config.js

module.exports = {
  apps : [
      {
        name: "myapp",
        script: "./../home/www/myapp/bin/www",
        watch: true,
        env: {
            "NODE_ENV": "development"
        },
        env_production: {
            "NODE_ENV": "production",
        }
      }
  ]
}

这里默认环境是 env ,但是您可以通过使用pm2 start ecosystem.config.js --env production 决定使用 env_production ,这样在上面的代码中就会自动走正式环境了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值