Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Node.js Modules and require()

1. Introduction

In Node.js, modules are the building blocks of the application, allowing for reusable code and better organization. The require() function is used to include modules in your application.

2. What are Modules?

Modules are simply JavaScript files that encapsulate functionality. In Node.js, every file is treated as a separate module.

Key Takeaway: Using modules helps in organizing code logically, making it easier to maintain and scale applications.

3. Using require()

The require() function is how you import modules in Node.js. Here’s how it works:

const myModule = require('./myModule'); // Importing a local module

In the example above, myModule would refer to whatever module.exports is set to in myModule.js.

4. module.exports and exports

To export a module, you can use module.exports or exports:


            // myModule.js
            const myFunction = () => {
                console.log('Hello from myFunction!');
            };
            module.exports = myFunction; // Exporting the function
            

Now, when you require myModule.js, myFunction will be available.

5. Best Practices

  • Use descriptive names for your modules to make the code self-documenting.
  • Keep modules focused on a single responsibility to enhance reusability.
  • Organize modules into folders if your application grows complex.

6. FAQ

What is the difference between require and import?

require() is a CommonJS feature, while import is part of ES6 modules which are used in modern JavaScript.

Can I require a JSON file?

Yes, you can require JSON files directly in Node.js, and it will parse it automatically.

7. Flowchart of Module Loading


            graph TD;
                A[Start] --> B[Check for Module];
                B -- Found --> C[Load Module];
                B -- Not Found --> D[Throw Error];
                C --> E[Execute Code];
                E --> F[Return Module];
                F --> G[End];