Node.js6 min read

Process and Environment Variables

Access system information and environment variables. Monitor your app health.

Sarah Chen
December 19, 2025
0.0k0

Process and Environment Variables

The process object provides runtime information about your Node.js app.

Environment Variables

const dbHost = process.env.DB_HOST || 'localhost';
const port = process.env.PORT || 3000;
const nodeEnv = process.env.NODE_ENV || 'development';

console.log(`Running in ${nodeEnv} mode`);
console.log(`Database: ${dbHost}`);
console.log(`Port: ${port}`);

Using .env Files

npm install dotenv
# .env
DB_HOST=localhost
DB_USER=admin
DB_PASS=secret123
PORT=3000
require('dotenv').config();

const dbConfig = {
  host: process.env.DB_HOST,
  user: process.env.DB_USER,
  password: process.env.DB_PASS
};

Process Information

console.log(process.version);
console.log(process.platform);
console.log(process.arch);
console.log(process.cwd());
console.log(process.pid);
console.log(process.uptime());

Output:

v18.17.0
linux
x64
/home/user/project
12345
45.234

Memory Usage

const used = process.memoryUsage();

console.log({
  rss: `${Math.round(used.rss / 1024 / 1024)} MB`,
  heapUsed: `${Math.round(used.heapUsed / 1024 / 1024)} MB`,
  heapTotal: `${Math.round(used.heapTotal / 1024 / 1024)} MB`
});

Real Example: Health Check

const express = require('express');
const app = express();

app.get('/health', (req, res) => {
  const health = {
    uptime: process.uptime(),
    timestamp: Date.now(),
    memory: process.memoryUsage(),
    version: process.version,
    status: 'ok'
  };
  
  res.json(health);
});

app.listen(3000);

Graceful Shutdown

const express = require('express');
const mongoose = require('mongoose');
const app = express();

const server = app.listen(3000);

process.on('SIGTERM', () => {
  console.log('SIGTERM received, closing server...');
  
  server.close(() => {
    console.log('Server closed');
    
    mongoose.connection.close(false, () => {
      console.log('MongoDB closed');
      process.exit(0);
    });
  });
});

Command Line Arguments

console.log(process.argv);
node app.js --port 3000 --env production

Output:

[
  '/usr/bin/node',
  '/path/to/app.js',
  '--port',
  '3000',
  '--env',
  'production'
]

Exit Process

if (!process.env.API_KEY) {
  console.error('API_KEY is required');
  process.exit(1);
}

Key Takeaway

Use process.env for configuration. Monitor memory with memoryUsage(). Handle SIGTERM for graceful shutdown. Use dotenv for environment variables.

#Node.js#Process#Environment#System