Home > Web Front-end > JS Tutorial > A simple understanding of nodejs modules (with examples)

A simple understanding of nodejs modules (with examples)

不言
Release: 2019-03-29 09:19:54
forward
2267 people have browsed it

This article brings you a simple understanding of the nodejs module (with examples). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

This short article is used to quickly understand the nodejs module (that is, the CommonJS specification).

Essence

module.exports is used to expose a value. This value is an object by default and can also be overwritten as the original value.

Try to directly log the value of the module in a file, you can get:

{
  id: '.',
  exports: {}, // 默认空对象
  parent: null,
  filename: '/Users/a10.12/webpack-learning/src/module.js',
  loaded: false,
  children: [],
  paths:
   [ '...' ]
}
Copy after login

You need to output what you need to output by modifying the exports attribute of the module, and require is used to import a Module, what is the value of module.exports, is what require gets.

Using

For example, if you have module.js

module.exports = {
  s: 2,
}
Copy after login

, the same is true when the

let v = require('./module.js')

console.log(v) // 输出为 { s: 2 }
Copy after login

original value is introduced in index.js

module.exports = 2

let v = require('./module.js')

console.log(v) // 输出为 2
Copy after login

Because module.exports is an object by default, there is a natural way to write the object when exporting:

module.exports.s = 2
Copy after login

In this way, require also gets { s: 2 }.

Abbreviation

Probably the bosses felt that module.exports was too long to write, so they referenced exports to module.exports, so check whether the two things are equal. When, return true:

console.log(exports === module.exports) // true
Copy after login

With this feature, you can easily write like this when exporting an object:

exports.s = 2

let v = require('./module.js')

console.log(v) // 输出为 2
Copy after login

But you can’t write like this:

// 这样
exports = 2
// 或这样
exports = {
  s: 2,
}
// 都是不可以的

let v = require('./module.js')

console.log(v) // 输出为 {}
Copy after login

The reason As mentioned above, exports is originally just a reference to module.exports. You can add attributes to the referenced object, but once the reference of exports to module.exports is overridden by the above two methods, exports will be invalid.

Final reminder, if you don’t understand what I said before, you may need to deepen your understanding of ECMAScript reference values ​​and original values...

This article has ended here, more For more exciting content, you can pay attention to the node.js tutorial video column on the PHP Chinese website! ! !

The above is the detailed content of A simple understanding of nodejs modules (with examples). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:segmentfault.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template