Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.Start your free trial
what is NODE_ENV and why did the teacher mention it in the video?
Not sure where NODE_ENV came from and why it's used
KWAME ADJEI4,627 Points
NODE_ENV is an environment variable(a dynamic-named value that can affect the way running processes will behave on a computer) that are exposed to the current node process.
In short, it's a variable defined on a running node process that allows you and packages to make decisions based on its value.
You can access environment variables by reading from the global process variable. i.e
A good real world example of when you might use the NODE_ENV variable could be to use a different database when in development vs production.
var databaseUri = "";
const environment = process.env.NODE_ENV // undefined, production, ...
databaseUri = "localhost:27017";
case "staging": // Value specific to your application. Not recommended for production
databaseUri = "staging/database/uri";
databaseUri = "production/database/uri";
The NODE_ENV environment variable is also used by some NPM packages to enforce behaviors.
A good example of this is the
debug package which allows you to see all you debug message in development and hides them in production to limit overhead.
How you set the NODE_ENV environment variable varies from operating system to operating system and also depends on your user/project setup.
You can set it as a one-off on Mac and Linux using
export NODE_ENV=production or
set NODE_ENV=production for Windows.
I personally recommend setting it in your
package.json file before your start script. i.e
NODE_ENV=production node index.js
console.log(process) for the entire list of environment variables.