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すると、OSによってプログラムに渡された変数を読み取ることができます。

通常、NodeJSプロジェクトは次process.envの2つの目的で使用しています。

  1. 環境間で変更が必要なもの。たとえば、開発、テスト、本番など。開発中に実際のDBに接続したくないし、本番環境ですべてを表示したくないconsole.log
  2. 秘密を守るため。GitのトップキープAPI、トークン、秘密鍵は安全ではありません。そのため、アプリを起動する前に、環境変数を使用して設定を保存します。

プロのヒント:別の方法があります。ファイル内のものを定義し.envます。このファイル.gitignoreで、、およびnpmモジュールを使用しますdotenv

于 2019-09-08T07:57:09.427 に答える