Process and Environment Variables
Access system information and environment variables. Monitor your app health.
Process and Environment Variables
The `process` object provides runtime information about your Node.js app.
Environment Variables
```javascript 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
```bash npm install dotenv ```
``` # .env DB_HOST=localhost DB_USER=admin DB_PASS=secret123 PORT=3000 ```
```javascript require('dotenv').config();
const dbConfig = { host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASS }; ```
Process Information
```javascript 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
```javascript 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
```javascript 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
```javascript 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
```javascript console.log(process.argv); ```
```bash node app.js --port 3000 --env production ```
**Output:** ``` [ '/usr/bin/node', '/path/to/app.js', '--port', '3000', '--env', 'production' ] ```
Exit Process
```javascript 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.