Best way to set a Node/Express app to live or production mode

You have to set the NODE_ENV variable on the command line when you execute your NodeJS application.

For example:

NODE_ENV=production node app.js

Also, NODE_ENV is an environment variable so if set it in the environment on your server, you will not need to provide it every time you execute your application so node app.js will do.

You can set your environment variables in the /etc/environment file. Here are more details on that.


By using NPM you might to be used the follow scripts in the package.json:

  "scripts": {
    "start": "nodemon ./bin/www",
    "dev_win": "set NODE_ENV=development && node ./bin/www >> /romba/log/api.log 2>> /romba/log/error.log",
    "prod_win": "set NODE_ENV=production && node ./bin/www >> /romba/log/api.log 2>> /romba/log/error.log"
    "prod_nix": "NODE_ENV=production node ./bin/www >> /romba/log/api.log 2>> /romba/log/_error.log"
  },...

To start one of the script use the command:

 npm run-script prod_win

In the JavaScript code I check the condition:

process.env.NODE_ENV.indexOf('production') > -1

or with Express.js

app.use((err, req, res, next) => {
  req.app.get('env') === 'development' ? ...