NEWS
Zusätzliches NPM-Modul installieren
-
Hallo zusammen,
das erste Mal möchte ein zusätzliches NPM-Modul installieren.
Leider finde ich meinen Fehler nicht und freue mich auf Unterstützung von Profis.import AxiosDigestAuth from '@mhoc/axios-digest-auth'; const digestAuth = new AxiosDigestAuth({ username: "admin", password: "xxxxxx", }); const Request = async () => { const response = await digestAuth.request({ method: "GET", url: "XXX" }) }
Fehlerbeschreibung:
'@mhoc/axios-digest-auth' in Zeile 1 ist rot unterstrichen.Manuelle Installation des Zusatzmoduls:
Die Installation von "@mhoc/axios-digest-auth" habe ich mangels Wissens zunächst manuell unter folgendem Pfad durchgeführt./opt/iobroker/node_modules/@mhoc/axios-digest-auth $
Deinstallation und automatische Installation:
Eine Deinstallation und Installation über den Adapter "javascript.0" hat nicht zum Erfolg geführt.
Über den Adapter wurde das Zusatzmodul überhaupt nicht installiert.Sofern notwendig, hier noch Berechtigungen für den Ordner:
/opt/iobroker/node_modules/@mhoc/axios-digest-auth $ ls -la /opt/iobroker/node_modules/@mhoc total 44 drwxrwxr-x+ 3 iobroker iobroker 4096 Feb 11 14:26 . drwxrwxr-x+ 747 iobroker iobroker 32768 Feb 11 14:26 .. drwxrwxr-x+ 8 iobroker iobroker 4096 Feb 11 14:28 axios-digest-auth
Vielen Dank vorab für eure Unterstützung.
-
@jvf_2
Versuchs mal so:const AxiosDigestAuth =require('@mhoc/axios-digest-auth').default;
-
@jvf_2 sagte in Zusätzliches NPM-Modul installieren:
'@mhoc/axios-digest-auth' in Zeile 1 ist rot unterstrichen.
hast di einmal versucht das skript laufen zu lassen?
die markierungen im editor sind nur hilfe und muss nicht immer korrekt sein, da manchmal die typdeklarationen fehlen, die dem editor sagen ob das so richtig ist. die sind aber zur laufzeit nicht notwendig -
const AxiosDigestAuth = require('@mhoc/axios-digest-auth').default; const digestAuth = new AxiosDigestAuth({ username: "admin", password: "xxxxxx", }); const Request = async () => { const response = await digestAuth.request({ method: "GET", url: "XXX" }) }
Leider wird das Modul auch hier rot unterstrichen.
Zusätzlich wird "require" wie folgt kommentiert:var require: NodeRequire (id: string) => any (+3 overloads) File is a CommonJS module; it may be converted to an ES module.(80001)
-
funktioniert das inzwischen? Ich bin an dem gleichen Punkt wo ich die digest Auth für eine Kamera brauche.
-
Wenn es nur um die roten Markierungen geht
Dann lese meinen Post oben -
@oliverio ja, das Eintragen des Moduls in die Javascript Adapter Config scheint zu funktionieren und es wird auch etwas ausgeführt. Jetzt kämpfe ich eher mit der Anwendung von axios-digest-auth.
Hatte es auch mit Typescript probiert, aber der import meckert. Kann es sein das das Modul dann nur in JS verfügbar ist? -
Eigentlich nicht.
Typescript ist JavaScript plus syntaktischem Zucker.
Auch das wird im Hintergrund wieder nach JavaScript übersetzt.Wenn du da aber nicht firm bist, dann verwende JavaScript
Was hast du denn bereits jetzt schon fertig?
Wo liegt das Problem?
Welche Fehlermeldung kommt?
Hast du Beispiel Code auf Basis von request?
Welchen Dienst willst du adressieren?
Gibt es dazu eine Dokumentation? API Beschreibung? -
@oliverio
Danke für die Hilfe, ich habe es jetzt hinbekommen, mein Problem hatte ich hier gepostet:
https://forum.iobroker.net/topic/76168/dahua-camera-snapshot-mit-axios/2Ich hatte mich lange an console.log(response.statusCode) -> 'undefined' festgebissen, aber der Statuscode heißt in der axios Struktur einfach 'status'. Die Kontrolle mit Wireshark zeigte das der request mit ok beantwortet wurde und funktionierte.
Das hinzufügen des Moduls über die Einstellung in der Adapterseite funktioniert auch, die roten Linien kann man ignorieren wie du schriebst.Ob das auch mit TS geht würde ich später nochmal testen, die bessere Typsicherheit bei TS gefällt mir schon, komme da von C/C++.
-
@jojos
zum lernen und üben empfehle ich dir vscode. das bietet dir viel mehr Unterstützung -
@oliverio VSC benutze ich schon intensiv, kann man das auch alternativ für die ioB Scripte nutzen? Also das es live im ioB mitläuft?
-
ich habe die Extension selbst noch nicht verwendet.
wenn ich etwas mache, dann schreib ich kleine dummy funktionen für die iobroker spezifischen befehle, so das ich den meisten code in vscode entwickeln kannhttps://marketplace.visualstudio.com/items?itemName=nokxs.iobroker-javascript
-
@oliverio Danke, das sieht gut aus, werde ich mal probieren.
Ja, das axios-digest-auth könnte man auch gut ohne ioB testen, zumindest ob die Anmeldung an dem Gerät funktioniert.