个人记录:Node 动态识别运行环境

个人记录:Node 动态识别运行环境

可能我的描述不准确

可以动态识别当前环境是开发模式还是线上模式

比如:

var HOST = {
    DEV:'192.168.1.235',
    PRO:'192.168.1.231'
}
var PORT = {
    DEV:'8080',
    PRO:'802'
}
var PATH = {
    DEV:'/mockjsdata/2',
    PRO:''
}
var RUN = 'PRO';

工作中大家都有几种环境的区分,开发环境,测试环境,线上环境,对于我之前的一个项目来讲,区别在于host:port/path,在开发环境–>测试环境–>线上环境,每次都是手动在代码里修改 RUN 的值,很麻烦,所以主管便让我实现可以动态识别…

BUT,我是前端菜鸟啊,不懂啥教动态识别啊,于是乎百度…谷歌…群友…各种咨询,也许是我描述不对,所以并没有得到想要的答案。

然而呢,突然发现这个问题其实很简单的,之前没怎么接触过命令行,常用的命令不过是 node * cnpm install *

node里边其实有个 process 对象,这个对象是Node的一个全局对象,它提供当前Node进程的信息。它可以在脚本的任意位置使用,不必通过require命令加载。好了,废话说完了,真正的干货在下边…

process.env

process.env属性返回一个对象,包含了当前Shell的所有环境变量。比如,process.env.HOME返回用户的主目录。

我的做法是,新建一个环境变量RUN,用它确定当前所处的开发阶段,生产阶段设为PRO,开发阶段设为DEV,然后在脚本中读取process.env.RUN即可。

运行脚本时,改变环境变量,可以采用下面的写法。

var HOST = {
    DEV:'192.168.1.235',
    PRO:'192.168.1.231'
}
var PORT = {
    DEV:'8080',
    PRO:'802'
}
var PATH = {
    DEV:'/mockjsdata/2',
    PRO:''
}
var RUN = process.env.RUN||'DEV';

然后在运行文件时这个样子:

set RUN=PRO && node ./bin/www

好了,这样就可以了,首先会先读取RUN有没有赋值,如果没有就默认使用开发地址,如果设置了值就会使用设置的地址,当然你也可以增加判断,如果输入不正确进行提示之类的…

关于process对象的详细介绍,可以去看下阮大神的文章:http://javascript.ruanyifeng.com/nodejs/process.html#toc4

全文完,希望对初学Node的大家有些许帮助

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值