Rolf B: Variabel in node ohne var,let ..

Beitrag lesen

Hallo effel,

wie lädst Du dr_konstruk2.js? Per require('dr_konstruk2.js') oder per require("C:/foo/bar/baz/blub/zonk/dr_konstruk2.js")?

Wenn Dir im require den Modulnamen genügt, dann sollte Dir require.resolve('dr_konstruk2.js') den vollständigen Pfad zum Modul liefern. Dafür ist es da, und es ist wenig sinnvoll, der resolve-Methode das, was sie eigentlich 'rausfinden soll, als Parameter zu übergeben. Find ich. In deinem Kontext mag es anders sein.

Ich hätte noch Nr 3 im Angebot:

"use strict";
FF = true;
// MÖÖP - Abbruch mit ReferenceError: FF is not defined
console.log("FF ",FF); 

In Nr. 2 hast Du "use strict" vermutlich nicht gesetzt, deshalb kann man durch Zuweisung an eine undeklarierte Variable diese als globale Variable erzeugen. Der strict-Mode verhindert das.

Strict Mode im Selfwiki

Um für deine Node-Application den strict-Mode zu erzwingen, hast Du 2 Möglichkeiten:

  • Zu Beginn jedes Moduls "use strict"; hinschreiben
  • In der package.json einen Eintrag "type": "module" hinzufügen, dann werden alle Module als ECMAScript-Module behandelt und die sind automagisch im strict mode.

Rolf

--
sumpsi - posui - obstruxi