hh54188
hh54188

Reputation: 15656

Node.js: Is there any documentation about the process.env variable

I use process.env a little in my program, it seems this variable have nothing to do with my program, without it my app could work well, too.

So how can I fully use the process.env? Is there any document or tutorial about it?

Upvotes: 61

Views: 81625

Answers (2)

Aminadav Glickshtein
Aminadav Glickshtein

Reputation: 24640

There is no documentation for the variables of process.env since it based on your environment. (Surprise).

When an operation system (OS, Linux, Win, or other), starts a process it's passing it environment variables that the process can read.

using process.env you can read the variables that passed to your programs by the OS.

Usually, NodeJS projects are using process.env for two things:

  1. Things that need to be changed between environment. For e.g. development, testing, and production. You don't want to connect to real DB during development, and you don't want to show all console.log on production.
  2. To keep secret. It's unsafe top keep API, tokens, and private keys on Git. So you save set it by using environment variable before starting the app.

Pro tip: There is another way. To define things in .env file. At this file to your .gitignore, and use the npm module dotenv

Upvotes: 3

hhh
hhh

Reputation: 2769

Try this link http://nodejs.org/api/process.html#process_process_env

Then you can make a small program in nodeJS:

console.log(process.env)

And run it

$ 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' }

Then, we learned that we can get elements from the environment we are running our app. Like, for example:

console.log(process.env.PWD);

Which returns

/tmp

And so on...

Upvotes: 80

Related Questions