当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。