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

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

不言
不言nach vorne
2019-03-29 09:19:542233Durchsuche

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:
   [ '...' ]
}

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,
}

haben und den ursprünglichen Wert

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

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

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

module.exports = 2

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

console.log(v) // 输出为 2

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

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

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

Aber Sie können nicht so schreiben:

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

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

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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen