前言
前端开发中我们经常会使用环境变量,用于在不同的环境中传入不同的变量。但是如果变量太多的话,可能会变得非常混乱。env-dot-prop 包就是帮助我们解决这个问题的。
env-dot-prop 提供了一种简单、可读性强的方式来访问层级嵌套的对象属性,并且支持以类似于 lodash 的方式进行安全的访问。
安装
你可以在终端中使用 npm 或 yarn 安装 env-dot-prop 包。
# npm 安装 npm install env-dot-prop --save # Yarn 安装 yarn add env-dot-prop
使用方法
使用 env-dot-prop 包十分简单,下面我们来看一下具体的使用方法。
设置环境变量
首先我们需要设置环境变量,并将其传入到一个对象中,例如:
-- -------------------- ---- ------- ----------- - - --------- ----- ----------- ------------ ------------- - ----- --------- --------- ----------- --------- ----------- ------- - ----- ------------ ----- ----- - - --展开代码
访问环境变量属性
要访问环境变量属性,我们需要将环境变量对象传入到 env.prop() 方法中。例如,我们要访问 APP_DATABASE.NAME:
const env = require('env-dot-prop'); const appName = env.get(process.env, 'APP_DATABASE.NAME'); console.log(appName); // Output: 'my-app'
使用默认值
有时我们可能需要使用默认值,例如当属性不存在时。我们可以指定一个默认值,当属性不存在时,该值将被返回。
-- -------------------- ---- ------- ----- --- - ------------------------ ----- ------------ - -------------------- --------------------------- ------------- -------------------------- -- ------- ----------- ----- ------------ - -------------------- --------------------------- ------- -------------------------- -- ------- -----展开代码
深层嵌套对象
env-dot-prop 包支持深层嵌套对象。例如,我们要访问 APP_DATABASE.SERVER.HOST:
const env = require('env-dot-prop'); const databaseServerHost = env.get(process.env, 'APP_DATABASE.SERVER.HOST'); console.log(databaseServerHost); // Output: 'localhost'
安全的访问嵌套对象
在对象嵌套较深时,可能会出现 TypeError: Cannot read property 'x' of undefined 错误。为了避免这种情况,我们可以使用 env.get() 方法,示例如下:
const env = require('env-dot-prop'); const databasePort = env.get(process.env, 'APP_DATABASE.SERVER.PORT'); console.log(databasePort); // Output: 27017 const databaseUser = env.get(process.env, 'APP_DATABASE.SERVER.USER', 'root'); console.log(databaseUser); // Output: 'root'
设置环境变量的值
我们可以使用 env.set() 方法来设置环境变量的值,示例如下:
const env = require('env-dot-prop'); env.set(process.env, 'APP_DATABASE.NAME', 'new-appname'); console.log(process.env.APP_DATABASE.NAME); // Output: 'new-appname' env.set(process.env, 'APP_DATABASE.USERNAME', 'new-john.doe'); console.log(process.env.APP_DATABASE.USERNAME); // Output: 'new-john.doe'
删除环境变量的值
我们可以使用 env.delete() 方法来删除环境变量的值,示例如下:
const env = require('env-dot-prop'); env.delete(process.env, 'APP_DATABASE.USERNAME'); console.log(process.env.APP_DATABASE.USERNAME); // Output: undefined
结论
env-dot-prop 包为我们提供了访问层级嵌套的对象属性的简单和可读性强的方法。无论你是新手还是有经验的前端开发人员,它都是一个值得尝试的包。通过此包的使用,我们可以更好地管理应用程序中的环境变量,并使代码更加清晰易读。
参考资料:
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/70758