process.env是通用环境变量还是Node.js专属?能否无需Node命令设置?
关于
process.env的两个问题解答 1. process.env是通用环境变量还是Node.js专属?
process.env是Node.js专属的环境变量对象,它属于Node.js的process模块,专门用来读取和修改当前Node.js进程内的环境变量。浏览器等其他JavaScript运行时环境并没有这个对象。
2. 能否不使用Node命令直接在终端中设置环境变量?
当然可以,但要注意终端环境变量和Node.js进程内process.env的隔离性:
- 临时设置终端环境变量(仅当前会话有效,后续启动的Node进程可读取):
设置后启动Node脚本,就能通过export foo="bar"process.env.foo获取到"bar"。 - 给单次Node进程单独设置环境变量:
这种方式下,foo="bar" node your-script.jsfoo只对这次启动的Node进程生效,不会影响终端全局的环境变量。
另外你提供的示例命令node -e 'process.env.foo = "bar"' && echo $foo不会输出bar,因为Node进程内修改的process.env.foo只存在于该Node进程的内存中,和终端的环境变量是相互独立的,终端无法读取到Node进程内部设置的这个变量。
内容的提问来源于stack exchange,提问作者Aquarius_Girl
相关产品推荐
相关产品推荐

