🖥️ Node.js OS Module: Your Computer’s Health Report
The Story of a Curious Doctor
Imagine you’re a doctor who can check on your computer’s health anytime! The os module in Node.js is like your medical toolkit — it tells you everything about your computer: its name, how much energy (memory) it has, how hard it’s working, and where it keeps important things.
Let’s explore this toolkit together!
📚 What is the OS Module?
The os module is a built-in part of Node.js that gives you information about your computer’s operating system (like Windows, Mac, or Linux).
Think of it like asking your computer:
- “What’s your name?”
- “How are you feeling today?”
- “Where do you keep your stuff?”
Getting Started
const os = require('os');
// Now you have your medical toolkit ready!
That’s it! One line, and you’re ready to explore.
🔍 OS Identification: Who Are You, Computer?
Just like people have names and personalities, computers have identities too!
What Type of Computer?
const os = require('os');
// What operating system?
console.log(os.type());
// Output: "Linux", "Darwin" (Mac), or "Windows_NT"
// What's your platform?
console.log(os.platform());
// Output: "linux", "darwin", or "win32"
Real-World Example:
const myOS = os.platform();
if (myOS === 'win32') {
console.log("You're on Windows! 🪟");
} else if (myOS === 'darwin') {
console.log("You're on Mac! 🍎");
} else {
console.log("You're on Linux! 🐧");
}
Computer’s Version & Details
// Operating system version
console.log(os.release());
// Output: "10.0.19041" (Windows) or "5.4.0" (Linux)
// Computer's architecture (32-bit or 64-bit)
console.log(os.arch());
// Output: "x64" or "arm64"
// Computer's network name
console.log(os.hostname());
// Output: "my-awesome-laptop"
graph TD A["os.type"] --> B["Linux / Darwin / Windows_NT"] C["os.platform"] --> D["linux / darwin / win32"] E["os.arch"] --> F["x64 / arm64 / ia32"] G["os.hostname"] --> H["Your Computer Name"]
💪 System Resource Information: How Strong Is Your Computer?
Now let’s check your computer’s muscles and energy!
Memory: How Much Brain Power?
const os = require('os');
// Total memory (RAM) in bytes
const totalMemory = os.totalmem();
console.log('Total Memory:', totalMemory);
// Free memory available right now
const freeMemory = os.freemem();
console.log('Free Memory:', freeMemory);
Making It Human-Readable:
// Convert bytes to gigabytes
const toGB = (bytes) => {
return (bytes / 1024 / 1024 / 1024).toFixed(2);
};
console.log(`Total: ${toGB(os.totalmem())} GB`);
console.log(`Free: ${toGB(os.freemem())} GB`);
// Output: "Total: 16.00 GB"
// Output: "Free: 8.45 GB"
CPU: The Computer’s Brain
// Get all CPU cores
const cpus = os.cpus();
// How many cores?
console.log('CPU Cores:', cpus.length);
// Output: "CPU Cores: 8"
// CPU model name
console.log('CPU Model:', cpus[0].model);
// Output: "Intel(R) Core(TM) i7-9700K"
// CPU speed
console.log('Speed:', cpus[0].speed, 'MHz');
// Output: "Speed: 3600 MHz"
System Uptime: How Long Have You Been Awake?
// Seconds since computer started
const uptime = os.uptime();
// Convert to hours and minutes
const hours = Math.floor(uptime / 3600);
const minutes = Math.floor((uptime % 3600) / 60);
console.log(`Computer awake: ${hours}h ${minutes}m`);
// Output: "Computer awake: 5h 23m"
graph TD A["System Resources"] --> B["Memory"] A --> C["CPU"] A --> D["Uptime"] B --> E["totalmem - Total RAM"] B --> F["freemem - Available RAM"] C --> G["cpus - Core Details"] D --> H["uptime - Time Since Boot"]
📁 System Paths and Identity: Where’s Everything?
Every computer has special folders. The OS module tells you exactly where they are!
Home Directory: Your Personal Space
// Where is the user's home folder?
console.log(os.homedir());
// Windows: "C:\\Users\\John"
// Mac/Linux: "/home/john"
Temp Directory: The Scratch Paper Folder
// Where to store temporary files?
console.log(os.tmpdir());
// Windows: "C:\\Users\\John\\AppData\\Local\\Temp"
// Mac/Linux: "/tmp"
Why is this useful?
const path = require('path');
const os = require('os');
// Create a temp file path
const tempFile = path.join(
os.tmpdir(),
'my-temp-file.txt'
);
console.log(tempFile);
// Output: "/tmp/my-temp-file.txt"
User Info: Who’s Using This Computer?
const userInfo = os.userinfo();
console.log('Username:', userInfo.username);
console.log('Home Dir:', userInfo.homedir);
console.log('User ID:', userInfo.uid);
// Output:
// Username: john
// Home Dir: /home/john
// User ID: 1000
Network Interfaces: How You Connect
const networks = os.networkInterfaces();
// See all network connections
for (const [name, interfaces] of
Object.entries(networks)) {
console.log(`\n${name}:`);
interfaces.forEach(net => {
console.log(` ${net.family}: ${net.address}`);
});
}
// Output:
// eth0:
// IPv4: 192.168.1.100
// IPv6: fe80::1
graph TD A["System Paths"] --> B["homedir"] A --> C["tmpdir"] A --> D["userinfo"] B --> E[User's Home Folder] C --> F["Temporary Files Location"] D --> G["Username & UID"]
🎯 Quick Reference Summary
| Method | What It Returns | Example Output |
|---|---|---|
os.type() |
OS type | “Linux” |
os.platform() |
Platform | “linux” |
os.arch() |
Architecture | “x64” |
os.hostname() |
Computer name | “my-laptop” |
os.totalmem() |
Total RAM (bytes) | 17179869184 |
os.freemem() |
Free RAM (bytes) | 8589934592 |
os.cpus() |
CPU details | Array of cores |
os.uptime() |
Seconds running | 19380 |
os.homedir() |
Home folder | “/home/user” |
os.tmpdir() |
Temp folder | “/tmp” |
os.userinfo() |
User details | {username, uid…} |
🌟 Real-World Mini Project
Let’s build a System Health Report:
const os = require('os');
function getHealthReport() {
const toGB = b => (b/1024/1024/1024).toFixed(2);
const toHours = s => (s/3600).toFixed(1);
return {
computer: os.hostname(),
os: os.type(),
platform: os.platform(),
architecture: os.arch(),
cpuCores: os.cpus().length,
totalMemoryGB: toGB(os.totalmem()),
freeMemoryGB: toGB(os.freemem()),
uptimeHours: toHours(os.uptime()),
homeDir: os.homedir(),
tempDir: os.tmpdir(),
user: os.userinfo().username
};
}
console.log(getHealthReport());
🎉 You Did It!
Now you can:
- ✅ Identify any operating system
- ✅ Check computer resources (memory, CPU)
- ✅ Find important system paths
- ✅ Get user information
The OS module is your window into the computer’s soul. Use it wisely to build smarter applications that adapt to any system!
Remember: The OS module requires no installation — it’s built right into Node.js. Just
require('os')and you’re ready to explore!
