當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Node.js process.env用法及代碼示例


process.env

曆史
版本變化
v11.14.0

默認情況下,工作線程現在將使用父線程的 process.env 的副本,可通過 Worker 構造函數的 env 選項進行配置。

v10.0.0

不推薦將變量值隱式轉換為字符串。

v0.1.27

添加於:v0.1.27

process.env 屬性返回一個包含用戶環境的對象。見 environ(7)

此對象的示例如下所示:

{
  TERM: 'xterm-256color',
  SHELL: '/usr/local/bin/bash',
  USER: 'maciej',
  PATH: '~/.bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin',
  PWD: '/Users/maciej',
  EDITOR: 'vim',
  SHLVL: '1',
  HOME: '/Users/maciej',
  LOGNAME: 'maciej',
  _: '/usr/local/bin/node'
}

可以修改此對象,但此類修改不會反映在 Node.js 進程之外,或(除非明確請求)其他 Worker 線程。換句話說,下麵的例子是行不通的:

$ node -e 'process.env.foo = "bar"' && echo $foo

雖然以下將:

import { env } from 'node:process';

env.foo = 'bar';
console.log(env.foo);const { env } = require('node:process');

env.foo = 'bar';
console.log(env.foo);

process.env 上分配屬性會隱式地將值轉換為字符串。此行為已棄用。當值不是字符串、數字或布爾值時,Node.js 的未來版本可能會引發錯誤。

import { env } from 'node:process';

env.test = null;
console.log(env.test);
// => 'null'
env.test = undefined;
console.log(env.test);
// => 'undefined'const { env } = require('node:process');

env.test = null;
console.log(env.test);
// => 'null'
env.test = undefined;
console.log(env.test);
// => 'undefined'

使用 deleteprocess.env 中刪除屬性。

import { env } from 'node:process';

env.TEST = 1;
delete env.TEST;
console.log(env.TEST);
// => undefinedconst { env } = require('node:process');

env.TEST = 1;
delete env.TEST;
console.log(env.TEST);
// => undefined

在 Windows 操作係統上,環境變量不區分大小寫。

import { env } from 'node:process';

env.TEST = 1;
console.log(env.test);
// => 1const { env } = require('node:process');

env.TEST = 1;
console.log(env.test);
// => 1

除非在創建 Worker 實例時明確指定,否則每個 Worker 線程都有自己的 process.env 副本,基於其父線程的 process.env 或指定為 Worker 構造函數的 env 選項的任何內容. process.env 的更改在 Worker 線程中不可見,並且隻有主線程可以進行對操作係統或本機add-ons 可見的更改。

相關用法


注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 process.env。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。