[NodeJS] - Shared Vars und Module - Könnte mir das jemand kurz erklären?

1 Antwort

a) Du hängst die Daten als Properties eines Objekts an dein Modul.

Beispiel:

// shared.js
module.exports = { someValue: 123 };

// otherScript.js
const data = require("./shared.js");
console.log(data.someValue); // 123
data.someValue = 456;
console.log(data.someValue); // 456

b) Du kannst globale Variablen auch an das global-Objekt hängen (für Funktionen würde ich weiterhin auf Module setzen).

Beispiel:

global.someValue = 123;

// in any script:
console.log(global.someValue); // 123
global.someValue = 456;
console.log(global.someValue); // 456

In beiden Fällen musst du natürlich aufpassen, dass der Wert unter Umständen von jeglichem Modul geändert werden könnte und Wertänderungen aufgrund des asynchronen Ablaufs des Programms womöglich nicht mehr leicht nachvollziehbar sind. Es wäre ratsam, zumindest mit Getters und Setters zu arbeiten, um wenigstens eine Zwischenschnittstelle zu haben.

global.sharedData = {
  someValue: 123,

  get someValue() {
    return this.someValue;
  }
  set someValue(value) {
    this.someValue = value;
  }
};