Chapter 4. The Node Module System
Node’s basic implementation is kept as streamlined as possible. Rather than incorporate every possible component of use directly into Node, developers offer additional functionality via Node’s modules.
Node’s module system is patterned after the CommonJS module system, a way of creating modules so that they’re interoperable. The core of the system is a contract that developers adhere to in order to ensure that their modules play well with others.
Among the CommonJS module system requirements implemented with Node are:
Support is included for a
requirefunction that takes the module identifier and returns the exported API.The module name is a string of characters, and may include forward slashes (for identification of path).
The module must specifically export that which is to be exposed outside the module.
Variables are private to the module.
In the next several sections, we’ll see how Node adheres to these requirements.
Loading a Module with require and Default Paths
Node supports a simple module loading system: there is a one-to-one correspondence between the file and module.
To include a module within a Node application, use the require statement, passing in a string with the
identifier for the module:
var http = require ('http');You can also just include a specific object, rather than all objects, from a module:
var spawn = require('child_process').spawn;You can load core modules—i.e., those native to Node—or modules from the node_modules folder just by ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access