Open In App

Expose Functionality from a Node.js file using exports

Last Updated : 14 Oct, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

Module.exports API to expose Data to other files

Node supports built-in module system. Node.js can import functionality which are exposed by other Node.js files. To import something, you need to use the import functionality exposed by the library.js file that is present in the current file folder.

const library = require('./library')                // Path

The functionality in the file must be exposed before it could be imported into any other files. An object defined in the file by default is private and unexposed to the outer world.

The module.exports file API is offered by the module system to implement in the code.
module is a variable that represents the current module and exports is an object which will be exposed as a module. So, the module.exports and exports will both be exposed as a module.

module.exports is basically an object which returns the result of a require call.

You need the new exports property to import the object or function in any other parts of your app. You can do so in 2 ways:

The first way is to assign an object to module.exports where the object is provided out of the box by module system.

Examples:




const person = {
    firstName: 'John',
    lastName: 'Smith'
}
  
module.exports = Person
  
// in the file where you want to export
   
const person= require(‘./person)


The second way is by adding the exported object as a property of exports. You can use exports to export multiple objects, function or data:




const Person = {
    firstName: 'John',
    lastName: 'Smith'
}
  
  
exports.person = person


Or Directly




exports.person = {
    firstName: 'John',
    lastName: 'Smith'
}


You’ll use it by referencing a property of your import in the other file:




Const items = require('items')
items.person


Or




const person= require('./items').person


What’s the difference between module.exports and exports?

The first exposes the object it points to whereas the latter exposes the properties of the object it points to.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads