NEWS
Javascript startet nicht (unsinnige Fehlermeldung)
-
@wolfgangfb sagte: Fehler bleibt bei:
Welche Version des JS-Adapters? Sind globale Skripte aktiv?
Außer der falschen Zeile 2 kann ich nichts entdecken. Sind im Tab "Protokolle" weitere Informationen vorhanden? -
hier gibt es sowas Ähnliches und eine Vermutung ...(hast Du auch diese JS-Adapter Version ?)
https://forum.iobroker.net/topic/53655/warn-mit-javascript-5-5-0
-
in der letzten Zeile(74) fehlt
})
-
Ich habe mal alles bis auf die erste Zeile gelöscht und siehe da, das Skript läuft. Dann Zeile für Zeile das Skript wieder gefüllt und siehe da, an dieser Stelle scheint es zu hängen:
fs.exists(LastValFn, function(exists){ console.log('Datei existiert');
Es kommt wieder die Fehlermeldung, dass in 4 Zeilen hinter dem Ende etwas nicht stimmt und das Wort "exists" ist im Editor durchgestrichen (was auch immer das bedeuten mag).
-
Also wenn ich obiges Skript ausführe steht im ioBroker Log (nicht dem unter dem Skript-Editor) folgendes:
2022-03-23 14:04:23.754 - error: javascript.0 (2080) script.js.Skript_1 compile failed: at script.js.Skript_1:152 2022-03-23 14:04:23.754 - error: javascript.0 (2080) SyntaxError: Unexpected end of input 2022-03-23 14:04:23.754 - error: javascript.0 (2080) at new Script (node:vm:100:7) 2022-03-23 14:04:23.754 - error: javascript.0 (2080) at Object.createScript (node:vm:257:10) 2022-03-23 14:04:23.754 - error: javascript.0 (2080) at createVM (C:\iobroker\node_modules\iobroker.javascript\main.js:1598:28) 2022-03-23 14:04:23.754 - error: javascript.0 (2080) at prepareScript (C:\iobroker\node_modules\iobroker.javascript\main.js:1849:37) 2022-03-23 14:04:23.754 - error: javascript.0 (2080) at C:\iobroker\node_modules\iobroker.javascript\main.js:1950:17 2022-03-23 14:04:23.755 - error: javascript.0 (2080) at Immediate._onImmediate (C:\iobroker\node_modules\iobroker.javascript\main.js:1423:17) 2022-03-23 14:04:23.755 - error: javascript.0 (2080) at processImmediate (node:internal/timers:466:21)
Unexpected end of input
Klingt für mich als wäre fastfoot auf dem richtigen Weg. Das sieht man auch schön wenn man mal ordentlich formatiert, dass das Skript "eingezogen" endet:
Füge ich am Ende
});
ein, kommt eine andere (erwartete) Fehlermeldung:script.js.Skript_1: ReferenceError: bla is not defined
-
@wolfgangfb hast du globale Scripte.. dann ist da dein Fehler.. deshalb der Fehler in zeile 77... die glbalen scripte werden zuerst in jedes Script gehangen.. und deshalb kommt der nicht zu deinem bla hin
-
Nein, ich hatte (bisher) keine globalen Skripte, wusste ehrlich gesagt gar nicht, dass es die gibt, habe aber schon länger nach so etwas gesucht
Ich habe jetzt mal danach gegoogelt und gelesen, dass es eigentlich immer die Ordner "common" und "global" geben sollte. Bei mir existieren die aber nicht. Mit "Neu" tauschen aber "common" und "global" auf. Bisher sind all meine Skripte entweder im Root Verzeichnis oder in darin angelegten Unterordnern.
Ist es sinnvoll, die Skripte alle in Common oder global zu haben? -
@wolfgangfb sagte in Javascript startet nicht (unsinnige Fehlermeldung):
Ist es sinnvoll, die Skripte alle in Common oder global zu haben?
nein!
nur nicht in global, außer du weißt ganz genau was du tust.
Deswegen ist der Ordner auch nur im Expertenmodus zu sehen -
Ich habe mir gedacht, dass ich in "global" Funktionen haben könnte, die ich eigentlich fast immer brauche und deshalb in fast jedem Skript händisch vorne angelegt habe (z.B. Logfunktionen, Stringfunktionen etc.)
Werden die globalen Skripte dann wirklich jedem anderen Skript vorangestellt oder nur dann wenn die Funktion auch aufgerufen wird? -
@wolfgangfb sagte in Javascript startet nicht (unsinnige Fehlermeldung):
wirklich jedem anderen Skript vorangestellt
ja