THE ORB
Studio wird gestartet

TypeError: Eigenschaften von undefined können nicht gelesen werden

Ein Script erwartete eine Information und bekam nichts. Dieselbe Problemklasse wie der häufigste Lua-Fehler.

groupsDiese Funktion hört auf zu funktionierencodeBraucht einen Entwickler

Mach das zuerst

Notier, welches Script genannt wird; der Fix liegt im Code dieses Scripts.

bug_reportFüg lieber deine ganze Konsole ein

Was es bedeutet

Die JavaScript-Fassung von „attempt to index a nil value". Es wurde auf etwas zugegriffen, das undefined oder null ist. Die Meldung nennt die Eigenschaft — das sagt, welcher Zugriff scheiterte, aber nicht, welcher Wert fehlte.

Was es auslöst

Sortiert danach, wie oft es die Antwort ist.

  1. 1

    Ein Spielerobjekt, das es nicht gibt

    Ein Serverscript, das einen Spieler sucht, der sich getrennt hat.

  2. 2

    Ein vergessenes await

    const rows = db.query(...) ohne await gibt ein Promise, und ein Feld davon zu lesen ergibt undefined.

  3. 3

    Ein fehlendes Objekt destrukturieren

    const { id } = payload, obwohl payload nie ankam.

  4. 4

    Eine Event-Nutzlast, die der Client nicht geschickt hat

    Dieselbe Fehlerklasse wie in der Lua-Variante, nur in der anderen Runtime.

  5. 5

    Ein Export einer nicht gestarteten Resource

    exports['x'].y, wobei das Export-Objekt undefined ist.

Wie du erkennst, welcher deiner ist

console.log(typeof ding, ding)

direkt über der fehlschlagenden Zeile. In FXServer landet das wie jede andere Ausgabe in der Serverkonsole.

Wo du nachsehen musst

Die genannte Zeile, dann die Zuweisung, die den undefined-Wert erzeugt hat.

Wie du es behebst

Nimm optionale Verkettung und Standardwerte an der Grenze:

const player = getPlayer(src)
if (!player) return

const amount = payload?.amount ?? 0
const rows = await db.query('SELECT ...')

Hängst du immer noch an deinem eigenen Code?

Diese Seite sagt, was dieser Fehler üblicherweise bedeutet. Füg deine Konsole in Server Fixer ein: es sortiert alles darin und sagt dir, was zuerst dran ist; und wenn du lieber nicht ranwillst, kann ORBIE das Script reparieren und dir die Resource fertig zum Einsetzen zurückgeben.

bug_reportServer Fixer öffnen

Für diese Art Fehler Script Optimizer liest das Script und repariert den Code dahinter.

Fehler, die mit diesem zusammen auftreten