Heim > Web-Frontend > js-Tutorial > Ein einfaches Verständnis der NodeJS-Module (mit Beispielen)

Ein einfaches Verständnis der NodeJS-Module (mit Beispielen)

不言
Freigeben: 2019-03-29 09:19:54
nach vorne
2291 Leute haben es durchsucht

Dieser Artikel vermittelt Ihnen ein einfaches Verständnis des NodeJS-Moduls (mit Beispielen). Freunde in Not können darauf verweisen.

Dieser kurze Artikel dient dem schnellen Verständnis des NodeJS-Moduls (d. h. der CommonJS-Spezifikation).

Essence

module.exports wird verwendet, um einen Wert verfügbar zu machen. Dieser Wert ist standardmäßig ein Objekt und kann auch als Originalwert überschrieben werden.

Versuchen Sie, den Wert des Moduls direkt in einer Datei zu protokollieren. Sie erhalten Folgendes:

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

Sie müssen das ausgeben, was Sie ausgeben müssen, indem Sie das Exportattribut des Moduls und require ändern Wird zum Importieren eines Moduls verwendet. Welchen Wert hat module.exports? und was require erhält?

Verwenden von

Zum Beispiel, wenn Sie module.js

module.exports = {
  s: 2,
}
Nach dem Login kopieren

haben und den ursprünglichen Wert

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

console.log(v) // 输出为 { s: 2 }
Nach dem Login kopieren

in index.js einfügen , das Gleiche gilt.

module.exports = 2

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

console.log(v) // 输出为 2
Nach dem Login kopieren

Da module.exports standardmäßig ein Objekt ist, gibt es eine natürliche Möglichkeit, das Objekt beim Exportieren zu schreiben:

module.exports.s = 2
Nach dem Login kopieren

Auf diese Weise erhält require auch { s: 2 }.

Abkürzung

Wahrscheinlich waren die Chefs der Meinung, dass „module.exports“ zu lang zum Schreiben sei, also verwiesen sie auf „module.exports“ für Exporte. Überprüfen Sie daher, ob diese beiden Dinge gleich sind . Wenn true zurückgeben:

console.log(exports === module.exports) // true
Nach dem Login kopieren

Mit dieser Funktion können Sie beim Exportieren von Objekten ganz einfach so schreiben:

exports.s = 2

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

console.log(v) // 输出为 2
Nach dem Login kopieren

Aber Sie können nicht so schreiben:

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

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

console.log(v) // 输出为 {}
Nach dem Login kopieren

Der Grund: Wie oben erwähnt, ist exports ursprünglich nur ein Verweis auf module.exports. Sie können dem referenzierten Objekt Attribute hinzufügen, aber sobald die beiden oben genannten Methoden verwendet werden, um den exports-Verweis auf module.exports zu überschreiben, sind Exporte ungültig.

Letzte Erinnerung: Wenn Sie nicht verstehen, was ich oben gesagt habe, müssen Sie möglicherweise Ihr Verständnis der ECMAScript-Referenzwerte und Originalwerte vertiefen ...

Dieser Artikel ist hier zu Ende Weitere Updates Weitere spannende Inhalte finden Sie in der Spalte node.js-Tutorialvideo auf der chinesischen PHP-Website! ! !

Das obige ist der detaillierte Inhalt vonEin einfaches Verständnis der NodeJS-Module (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage