Loading lessons...
CommonJS Module System
The CommonJS (require) Pattern
CommonJS is the traditional module format introduced with Node.js. It loads modules synchronously using the require() function and exports values via module.exports or exports.
Exporting Modules
// math.js - Single export object assignment
const add = (a, b) => a + b;
const subtract = (a, b) => a - b;
module.exports = {
add,
subtract
};
// logger.js - Exporting individual properties
exports.logInfo = (msg) => console.log("[INFO]", msg);
exports.logError = (msg) => console.error("[ERR]", msg);
⚠️ DocHero Safety Disclaimer
Do NOT reassign exports = function() {}. exports is a helper pointer referencing module.exports. Reassigning exports directly breaks the link to module.exports!
Importing Modules
// app.js
const { add, subtract } = require("./math");
const logger = require("./logger");
console.log(add(10, 5)); // 15
logger.logInfo("System operational");
Module Caching & Scoping
- Modules are cached after the first load. Subsequent calls to
require('./file')return the cached export object without re-executing the file. - Node wraps modules in a wrapper function providing
__filename,__dirname,require,module, andexports.
TL;DR
- CommonJS uses
require()andmodule.exports. require()runs synchronously.- Loaded modules are cached in memory after initial resolution.