这篇文章主要讲解了“dotenv怎么从.env文件中读取环境变量”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“dotenv怎么从.env文件中读取环境变量”吧!dotenv
从.env
文件中读取环境变量,然后将其添加到process.env
中。这是一个非常简单的库,但是它在开发中非常有用,因为它允许你在.env
文件中存储敏感信息,而不是将其存储在代码中。现在很多库都支持.env
文件,例如create-react-app
,vue-cli
,next.js
等。根据README
,dotenv
只有两个方法:config
:读取.env
文件并将其添加到process.env
中。parse
:解析一段包含环境变量的字符串或Buffer
,并返回一个对象。可以看到,dotenv
的使用非常简单,通常我们只需要调用config
方法即可。还有一种方法是预加载,直接通过node -r dotenv/config
来运行脚本,这样就不需要在脚本中引入dotenv
了。源码在lib/main.js
中,先来看一下全部的代码:可以看到最后导出的是一个对象,包含了config
和parse
两个方法。config
方法的作用是读取.env
文件,并将其添加到process.env
中。首先定义了一些变量:dotenvPath
是.env
文件的路径encoding
是文件的编码debug
和override
分别表示是否开启调试模式和是否覆盖已有的环境变量。然后判断了一下options
是否存在,如果存在的话,就会根据options
的值来修改dotenvPath
和encoding
的值。然后是调用parse
方法来解析.env
文件,parse
方法的实现在下面会讲到。这里是只用fs.readFileSync
来读取.env
文件,然后将其传入parse
方法中,接着往下:这里是遍历parsed
对象,然后将其添加到process免费云主机域名.env
中,如果process.env
中已经存在了该环境变量,那么就会根据override
的值来决定是否覆盖。debug
的值表示是否开启调试模式,如果开启了调试模式,那么就会打印一些日志。最后就是直接返回parsed
对象。parse
方法的作用是解析.env
文件,将其转换为一个对象。首先定义了一个正则表达式LINE
,用来匹配.env
文件中的每一行。然后是将src
转换为字符串,然后将换行符统一为n
。接着就是核心,通过正则表达式的特性通过while
循环来匹配每一行。这个正则着实有点复杂,我是正则渣渣,可以在regex101查看一下。这个正则上面标出了三种颜色,和下面的匹配的值的颜色相互对应,然后右边会展示匹配的值。这里我不过多解读,可以自己去看一下,然后输入不同的值对比一下结果。通过上面的截图可以看到匹配会捕获两个值,第一个是环境变量的名称,第二个是环境变量的值。然后对值进行处理,首先去掉首尾的空格,然后通过正则去掉首尾的引号,最后再将转义的换行符转换还原。经过上面的处理,就可以将每一行的环境变量添加到obj
对象中了,最后返回obj
对象。感谢各位的阅读,以上就是“dotenv怎么从.env文件中读取环境变量”的内容了,经过本文的学习后,相信大家对dotenv怎么从.env文件中读取环境变量这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!
这篇文章主要介绍了怎么用C++模拟实现STL容器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用C++模拟实现STL容器文章都会有所收获,下面我们一起来看看吧。列表是一种顺序容器,它允许在序列中的任何位置执行常量时间插入和删除…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。