Node.js Lesson 3: Modules
Node.js splits code into modules — separate files you can import and export. This keeps your code organized as projects grow.
CommonJS (CJS) — Classic Node.js
// math.js — exporting
function add(a, b) { return a + b; }
function subtract(a, b) { return a - b; }
const PI = 3.14159;
module.exports = { add, subtract, PI };
// app.js — importing
const { add, subtract, PI } = require("./math");
console.log(add(5, 3)); // 8
console.log(subtract(10, 4)); // 6
console.log(PI); // 3.14159
ES Modules (ESM) — Modern Style
// math.mjs (or add "type":"module" in package.json)
export function add(a, b) { return a + b; }
export const PI = 3.14159;
export default function multiply(a, b) { return a * b; }
// app.mjs
import multiply, { add, PI } from "./math.mjs";
console.log(multiply(3, 4)); // 12
console.log(add(1, 2)); // 3
Built-in Node.js Modules
// Node.js comes with many built-in modules:
const path = require("path");
const os = require("os");
console.log(path.join(__dirname, "files", "data.txt"));
console.log(os.platform()); // "win32", "darwin", "linux"
console.log(os.totalmem()); // RAM in bytes
console.log(os.cpus().length); // CPU core count
🏋️ Practice Task
Create two files: “utils.js” (exports: capitalize, truncate, countWords functions) and “app.js” (imports and tests all three). capitalize(“hello world”) → “Hello World”. truncate(“long text”, 5) → “long …”. countWords(“hello world”) → 2.
💡 Hint: module.exports = { capitalize, truncate, countWords }. In app.js: const { capitalize } = require(“./utils”);