Node.js取消设置环境变量

euoag5mw  于 2022-09-21  发布在  Node.js
关注(0)|答案(3)|浏览(218)

如何在Node.js中取消设置环境变量?

我试过了:

process.env.MYVAR = undefined

但这并没有推翻它,它看起来如下所示:

console.log('xx' + process.env.MYVAR + 'xx');

输出为:

Xxxunfinedxx

我想:

XXXX

我怎么才能做到这一点?

bakd9h0s

bakd9h0s1#

它还有另一个不直观的方面:Node.js在为环境变量赋值时将undefined转换为字符串“unfined”:

> process.env.MYVAR = undefined
undefined
> typeof process.env.MYVAR
'string'

您可以使用delete解决此问题:

> delete process.env.MYVAR
true
> typeof process.env.MYVAR
'undefined'

使用Node.js 10.18、12.14、13.5和16.15进行了测试。

因此,(process.env.MYVAR || '')不起作用,因为它的计算结果为('undefined' || '')

ldxq2e6h

ldxq2e6h2#

问题是:

console.log('xx' + process.env.MYVAR + 'xx');

实际上是不正确的。未定义属性的值为undefined。只要属性值相同,process.env.MYVAR = undefined就与delete process.env.MYVAR相同。但是属性也有delete删除的存在,因为密钥不会显示在Object.keys返回的Array中。

如果需要空字符串,则必须编写:

console.log('xx' + (process.env.MYVAR || '') + 'xx');
k2fxgqgv

k2fxgqgv3#

确保您了解undefined !== ""

如果需要空字符串,请使用:process.env.MYVAR = ""。未定义意味着那里什么都没有。空字符串表示没有任何内容的文本,使其易于理解。

相关问题