TypeError: Cannot read properties of undefined (reading 'checkHealth')?

1 Antwort

Meine Vermutung ist, dass der Pfad zum Modul falsch ist, aber müsste man jetzt die komplette Ordnerstruktur sehen. Vielleicht kannst Du das ja mal auf Github als Repo veröffentlichen und dann hier verlinken?


Bxrchiii 
Beitragsersteller
 27.04.2024, 21:02
MWojt  27.04.2024, 21:42
@Bxrchiii

Die Funktion, die Du aufrufst, ist eine Variable (const bla = function () {}) und keine echte Funktion (function bla() {}). Der Unterschied ist, dass Variablen erst dann definiert sind, wenn der Code läuft. Echte Funktionen sind dagegen bereits früher definiert (die sammelt er sich zusammen, bevor der eigentliche Code läuft).

Wenn der Code jetzt läuft, bevor die Variablen aufgerufen werden, ist das gar kein Problem. In diesem Fall wird er das aber offensichtlich nicht.

Meistens kommt das durch zirkuläre Abhängigkeiten (wenn sich ein Modul in der Kette irgendwann wieder selbst importiert). Es kann aber auch damit zusammenhängen, dass Du hier eine Klasse mit statischen Feldern exportierst.

Ich würde empfehlen, die Funktionen separat zu exportieren und nicht als Klasse (das ist ohnehin übersichtlicher). Wenn Du die alle auf einmal importieren willst, kannst Du das dann immer noch mit import * as abc from './abc', auch wenn ich davon generell abraten würde, da man sich sonst schnell den Namespace vollmüllt.

Ich würde außerdem keine Variablen exportieren, sondern echte Funktionen (function bla() {}). Abgesehen davon, dass Dein Code dann vermutlich funktioniert, wird dadurch auch die Reihenfolge der Funktionen irrelevant.

Zu guter Letzt würde ich noch prüfen, ob nicht doch eine zirkuläre Abhängigkeit existiert, denn auch wenn die Funktionen so wahrscheinlich erst mal funktionieren werden, möchtest Du ja eventuell irgendwann Variablen exportieren, wo das Problem dann wieder aufträte.