Node.js 具有多个 key/values 的环境变量可由 node.js 读取?
Node.js environment variable with multiple key/values readable by node.js?
我想创建一个 .env 文件,它有一个环境变量,提供多个 key/values 可读 node.js。
例如:
USERNAME=firstname:John,lastname:Doe
然后是这样的:
require('dotenv').config()
let myEnvVariable = process.env.USERNAME
let firstName = myEnvVariable.firstname
let lastName = myEnvVariable.lastname
console.log(fistName, lastName)
// expected result: John Doe
这样的事情可能吗?如果是这样,我该怎么做?
我从来没有听说过这样的事情...但是您可以为变量定义自己的格式,这样您就可以实现类似的事情...
按照您的示例,您可以使用可以执行此操作的解析器...
const USERNAME="firstname:John,lastname:Doe,phone:countryCode:55,phone:number:99999999999";
const parse = str => {
const output = {};
str.split(',').forEach(part => {
const keys = part.split(':');
const value = keys.pop();
let def = output;
keys.forEach((key, idx) => {
if (idx === keys.length - 1) return def[key] = value;
if (!def[key]) def[key] = {};
def = def[key];
});
});
return output;
};
console.log(parse(USERNAME));
我从来没有听说过这样的事情...但是您可以解析您自己创建的格式...
如果您只将 JSON 作为环境变量值,这可能是最简单的。然后,您可以只获取环境变量的值并对它执行 JSON.parse()
并得到一个完整的 Javascript 对象作为结果。然后,您不必发明自己的格式,也不必编写自己的解析代码。
在您的环境中:
USERNAME={"firstname":"John","lastname":"Doe"}
然后,在您的代码中:
const user = JSON.parse(process.env.USERNAME);
console.log(user.firstname);
console.log(user.lastname);
仅供参考,这正是 JSON 发明的目的 - 一种纯文本标准格式,用于表达可以从几乎任何语言轻松生成或解析的数据。
我想创建一个 .env 文件,它有一个环境变量,提供多个 key/values 可读 node.js。
例如:
USERNAME=firstname:John,lastname:Doe
然后是这样的:
require('dotenv').config()
let myEnvVariable = process.env.USERNAME
let firstName = myEnvVariable.firstname
let lastName = myEnvVariable.lastname
console.log(fistName, lastName)
// expected result: John Doe
这样的事情可能吗?如果是这样,我该怎么做?
我从来没有听说过这样的事情...但是您可以为变量定义自己的格式,这样您就可以实现类似的事情...
按照您的示例,您可以使用可以执行此操作的解析器...
const USERNAME="firstname:John,lastname:Doe,phone:countryCode:55,phone:number:99999999999";
const parse = str => {
const output = {};
str.split(',').forEach(part => {
const keys = part.split(':');
const value = keys.pop();
let def = output;
keys.forEach((key, idx) => {
if (idx === keys.length - 1) return def[key] = value;
if (!def[key]) def[key] = {};
def = def[key];
});
});
return output;
};
console.log(parse(USERNAME));
我从来没有听说过这样的事情...但是您可以解析您自己创建的格式...
如果您只将 JSON 作为环境变量值,这可能是最简单的。然后,您可以只获取环境变量的值并对它执行 JSON.parse()
并得到一个完整的 Javascript 对象作为结果。然后,您不必发明自己的格式,也不必编写自己的解析代码。
在您的环境中:
USERNAME={"firstname":"John","lastname":"Doe"}
然后,在您的代码中:
const user = JSON.parse(process.env.USERNAME);
console.log(user.firstname);
console.log(user.lastname);
仅供参考,这正是 JSON 发明的目的 - 一种纯文本标准格式,用于表达可以从几乎任何语言轻松生成或解析的数据。