NEWS
Modul für Node-Red hínzufügen
-
Hallo,
ich möchte gerne einen md5-Hash in Node-red berechnen.
Ich bin in das Verzeichnis
/opt/iobroker/node_modules
gewechselt und habe
npm install js-md5
aufgerufen.
Anschließend habe ich js-md5 als zusätzliches Modul in node-red Adapter angegeben.
Ich kann es aber nicht verwenden. Gibt es da ein Beispiel?
-
Hallo sissiwup,
prinzipiell ist es möglich, in einen Function-Node andere Module zu verwenden. Dafür muss das Modul über ein require-Statement angezogen werden.
Soweit ich dich richtig verstanden habe, hast du md5 durch Aufruf von npm install im Verzeichnis /opt/iobroker/node_modules lokal installiert.
Somit sollte sich das Modul nun im Verzeichnis /opt/iobroker/node_modules/node_modules/md5 befinden. Da kann es aber node-red nicht ohne weiteres finden, da lokal installierte Module jeweils nur unterhalb des jeweils inkludierenden Moduls gesucht werden. Bei Function-Nodes ist das normalerweise das Verzeichnis, aus dem heraus der node-red-Prozess gestartet wurde.
Der Root-Pfad für den node-red-Prozess ist jedoch /opt/iobroker/node_modules/iobroker.node-red.
Es gibt jetzt zwei Möglichkeiten, damit umzugehen:
Entweder beim require-Statement den kompletten Pfad absolut oder relativ mit angeben oder die Installation wie folgt durch zuführen:
Schreibe den Namen des rpm-Pakets in das Feld Additional npm modules auf der Eigenschaftenseite des node-red.0-Adapters. Dann wird dieser automatisch unter /opt/iobroker/node_modules/iobroker.node-red/node_modules/md5 installiert.
Im Verzeichnis /opt/iobroker/node_modules/iobroker.node-red zu wechseln und dort mittels npm install js-md5 das Modul zu installieren würde ich nicht empfehlen, weil dies beim nächsten Update des node-red-Adapters wieder weg wäre und erneut manuell installiert werden müsste.
Um die Funktion nun zu verwenden muss im Function-Node am Anfang folgendes stehen:
var md5 = require("md5");
mfg
Markus
-
Hallo,
Require geht nicht in Node-red Modulen. Ist nicht erlaubt.
-
Sorry, bin zurzeit unterwegs und hab das vorher nicht überprüft. Geht nur über einen Umweg.
Schau mal hier unter global context:
http://nodered.org/docs/writing-functions.html
Gesendet von meinem GT-N8000 mit Tapatalk