《若川视野x源码共读》第22期 源码学习系列之dotenv

疑问

在工作中我们常常会遇到.env的文件,在这个文件中我们配置的一些环境变量,可以在程序中通过process.env进行获取使用,好多人都不知道.env 中的变量是如何添加到process.env上去的,接下来我们一起去探索。

.env

我们项目尝尝用到的.env文件格式如下:

APP_NAME='测试'
NAME='源码共读'
AGE=7
OTHER='welcome yours' 

从上述的疑问中我们可以知道,.env 文件中的内容最后将以对象的形式,扩展到process.env 上 所以我们大胆的猜测dotenv会做如下几件事情:

  • 读取.env文件
  • 将.env文件转成对象
  • 将对象扩展到process.env对象上
初步的实现

根据我们猜测我们对于dotenv 进行简单的实现

const fs =  require('fs')
const path = require('path')
const src= path.join(__dirname,'.env')
//1读取env 文件
function readFile(src){
//异步读取文件
   return  fs.readFileSync(src,'utf-8')
}
//2 将其转成对象
function parse(){
    const obj={}
    //通过回车符号进行分隔
    const strArr = readFile(src).split(/\n/)
    strArr.forEach((item,index)=>{
    ///通过=进行分隔 将获取到对象的key 和value值
        obj[item.split('=')[0]]=item.split('=')[1].replace(/\r/,'')

    })
    return obj
}

//3 追加到process.env 上
function config(){
 const obj = parse()
 //将.env 中的文件对象扩展到process.env 对象上
 for(let key  in obj){
     process.env[key]=obj[key]
 }
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值