node.js process.env
对象处理属性分配的方式似乎与常规 JavaScript 对象不同。在这种情况下,如何让 process.env
对象像普通对象一样工作?
下面是说明不同赋值行为的示例代码。由于某种原因,将 undefined
分配给属性会导致字符串类型(仅适用于 process.env
):
function demo(description, dict) {
console.log(description);
dict.A = undefined;
console.log('typeof dict.A: ' + typeof dict.A + '\n');
}
demo('Passing empty object:', {});
demo('Passing process.env:', process.env);
生成的输出是不同的,具体取决于传递的是空对象 {}
还是 process.env
对象:
$节点测试.js
传递空对象:
typeof dict.A: undefined
传递 process.env:
typeof dict.A: 字符串
原文由 Leftium 发布,翻译遵循 CC BY-SA 4.0 许可协议
process.env
对象强制其所有属性为字符串类型,因为环境变量必须始终为字符串。我不完全确定你的目的,但也许你可以尝试其中一种作为解决方法:process.env
对象复制到一个新对象中,该对象将正常运行:''
分配给属性当您将其视为布尔值时,它将返回 false
delete
来自process.env
密钥希望这可以帮助