61

我在我的程序中使用process.env了一点,这个变量似乎与我的程序无关,没有它我的应用程序也可以正常工作。

那么如何才能充分利用process.env呢?有没有关于它的文档或教程?

4

2 回答 2

80

试试这个链接http://nodejs.org/api/process.html#process_process_env

然后可以在nodeJS中做一个小程序:

console.log(process.env)

并运行它

$ node myProgram.js

{ TERM_PROGRAM: 'iTerm.app',
  TERM: 'xterm',
  SHELL: '/bin/bash',
  CLICOLOR: '1',
  TMPDIR: '/var/folders/ff/59np25p96x95hpgbtsv3r6zr0000gn/T/',
  Apple_PubSub_Socket_Render: '/tmp/launch-LIiu0r/Render',
  OLDPWD: '/Users/hermanjunge',
  USER: 'hermanjunge',
  COMMAND_MODE: 'unix2003',
  SSH_AUTH_SOCK: '/tmp/launch-XOMy7j/Listeners',
  __CF_USER_TEXT_ENCODING: '0x1F5:0:0',
  Apple_Ubiquity_Message: '/tmp/launch-jiZQH0/Apple_Ubiquity_Message',
  LSCOLORS: 'ExFxCxDxBxegedabagacad',
  PATH: '/Users/hermanjunge/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/usr/local/mysql/bin',
  PWD: '/tmp',
  ITERM_PROFILE: 'hermanjunge',
  SHLVL: '1',
  COLORFGBG: '7;0',
  HOME: '/Users/hermanjunge',
  ITERM_SESSION_ID: 'w1t4p0',
  LOGNAME: 'hermanjunge',
  LC_CTYPE: 'UTF-8',
  DISPLAY: '/tmp/launch-HCtQeC/org.macosforge.xquartz:0',
  _: '/usr/local/bin/node' }

然后,我们了解到我们可以从运行应用程序的环境中获取元素。比如,例如:

console.log(process.env.PWD);

哪个返回

/tmp

等等...

于 2013-02-25T01:59:13.297 回答
3

没有关于变量的文档,process.env因为它基于您的环境。(惊喜)。

当操作系统(OS、Linux、Win 或其他)启动一个进程时,它会向其传递进程可以读取的环境变量。

使用process.env您可以读取操作系统传递给您的程序的变量。

通常,NodeJS 项目process.env用于两件事:

  1. 环境之间需要改变的东西。例如开发、测试和生产。您不想在开发期间连接到真实数据库,也不想console.log在生产中显示所有内容。
  2. 要保守秘密。在 Git 上保留 API、令牌和私钥是不安全的。因此,您可以在启动应用程序之前使用环境变量保存设置。

专业提示:还有另一种方法。在.env文件中定义事物。在这个文件到你的.gitignore, 并使用 npm 模块dotenv

于 2019-09-08T07:57:09.427 回答