What is the purpose of Node.js’s module.exports
and do I use it?
Node.js uses the CommonJS module system to allow developers to distribute their code across multiple files and make use of third-party libraries. module.exports
is part of the CommonJS specification – it defines the object that is created when a file is imported using require()
. This gives developers control over which parts of a file can be accessed externally, allowing for encapsulation.
Consider the following module code, which provides methods for retrieving names in different formats.
// names.js module function lastname() { // private function return "Doe"; } function firstname() { // private function return "Jane"; } function firstnameLastname() { // public function return `${firstname()} ${lastname()}`; } function lastnameFirstname() { // public function return `${lastname()}, ${firstname()}`; } module.exports = { firstnameLastname, lastnameFirstname }; // object to be returned by require()
This module contains four functions, but only the last two are included in module.exports
. If we require()
this module in another file, we will not be able to call firstname()
or lastname()
.
const names = require("names.js"); // require() returns the object assigned to module.exports console.log(names.firstnameLastname()); // will print "Jane Doe" console.log(names.lastnameFirstname()); // will print "Doe, Jane" console.log(names.firstname()); // will produce an error console.log(names.lastname()); // will produce an error
Get actionable, code-level insights to resolve Node performance bottlenecks and errors.
Create a free Sentry account
Create a Node project and note your DSN
Install the Sentry Node SDK
npm install @sentry/node
const Sentry = require('@sentry/node'); Sentry.init({ dsn: 'https://<key>@sentry.io/<project>' });
Loved by over 4 million developers and more than 90,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.