Menu
CoddyTech

CommonJS-Module

Teil des Abschnitts Node.js-Grundlagen der Node.js-Journey von Coddy. Lektion 9 von 24.

Ein großer Teil des Node-Codes, den du in npm-Paketen und älteren Tutorials lesen wirst, verwendet ein anderes Modulsystem.

CommonJS exportiert mit module.exports und importiert mit require. Node führt es weiterhin in Dateien aus, deren Namen auf .cjs enden, und ein import einer solchen Datei liefert dir das module.exports-Objekt als Standardwert:

// greet.cjs
function hello(name) {
    return 'Hello, ' + name;
}
module.exports = { hello };

// app.js
import greet from './greet.cjs';
console.log(greet.hello('Ada'));

exports ist anfangs dasselbe Objekt wie module.exports. exports.hello = hello fügt etwas hinzu; exports = { hello } ersetzt die Variable, und der Import erhält ein leeres Objekt.

challenge icon

Aufgabe

Einfach
  • Vervollständige countWords(notes) in legacy/stats.cjs: wie viele Wörter die Notizen insgesamt enthalten.
  • Importiere es mit import stats from './legacy/stats.cjs' in notes.js.
  • Ein stats-Befehl gibt 3 notes, 7 words aus.

Führe node notes.js stats aus. Füge dann mit add eine Notiz hinzu und führe erneut stats aus: weiterhin 3, da noch nichts gespeichert wird.

Probier es selbst

// Ein älteres Modul, im CommonJS-Stil geschrieben.
function countWords(notes) {
    // Gib zurück, wie viele Wörter alle Notizen zusammen enthalten.
    return 0;
}

module.exports = { countWords };

Alle Lektionen in Node.js-Grundlagen