Anmelden

View Full Version : node js



Seiten : 1 [2]

malzusrex
05-01-20, 11:39
Dann würden so Leute wie ich nur nach nach Like's jagen;-).
Man kennt das schon mal aus anderen Foren: Da wird geantwortet um des Antwortens willen, denn jede Antwort ist ein Punkt.

Ich dachte das hier:
544
ist die Währung....

Gruß
Ronald

Fuerchau
05-01-20, 12:51
Das ist ja glatt Meinungsmache;-). Was glaubst du, wieviele Antworten ich mir da hätte sparen können?
Die Zahl sagt ja nichts über die Qualität. Zugegeben, likes tun das auch nicht. Die sagen nur was über Stimmung. Da sind Weihnachtslieder schon manchmal stimmiger.
Aber was solls, im Alter wird man halt schon mal grantiger.
Wobei man dies auch als "Großer Tiger" übersetzen könnte;-).

mk
06-01-20, 07:24
Hi, kf

den ACS Version
IBM i Access Client Solutions
(64-Bit)
Version: 1.1.8.3

habe ich jetzt.

Was meinst Du denn via Terminal ?

mk
06-01-20, 13:23
Radio Eriwan sagt, das sollte gehen - via ssh. Habt Ihr die OpenSource Umgebung aktuell? Nimm bitte einen aktuellen iACS und ruf auf "extras / Open Source package management". Bei entsprechender Meldung das installationsscript ausführen, dann alle Pakete drauf. Danach sollte das mit dem npm gehen.

-h

Hi Holger,
den ACS habe ich jetzt drauf. Allerdings finde ich nicht das richtige Package :-)

Gruß Michael

PS: Gibt es denn keinen node Entwickler ? Ich bin doch wohl nicht der erste oder ?????????????

camouflage
06-01-20, 16:44
Wirf mal einen Blick darauf:
https://www.scottklement.com/presentations/World%20of%20NodeJS%20on%20IBM%20i.pdf

alternativ gäbe es noch entsprechende YT Videos.

andreaspr@aon.at
07-01-20, 20:01
Was genau ist jetzt eigentlich das Problem.

Ich gehe immer wie folgt vor:
1. Packete via npm installieren
2. PATH und NODE_PATH Umgebungsvariable korrekt setzen
3. QIBM_MULTI_THREADED Umgebungsvariable auf Y setzen

und dann via QSH das ganze aufrufen.

Am besten richtest du dir auch eine bessere SHELL ein, da die Default vieles nicht kann.
Ich halte aber genau für diese ersten Steps eigene Workshops, da gerade die Open Source Welt nicht immer die einfachste ist.
Auch die Auswahl der richtigen Tools zur Entwicklung machen einen riesen Unterschied (so wie SEU vs. RDi).

lg Andreas

camouflage
05-02-20, 14:30
Hallo Michael,

Ich muss mich in diese Materie auch noch viel tiefer einarbeiten, aber gebe ich dir noch eine ausführlichere Antwort (nach meinem Kenntnisstand):

Zur Terminalfrage:

Als Terminals kannst Du auf dem PC z.B. GitBash, PuttY, aber auch den normalen CMD von MS verwenden. PuttY hat den Vorteil, dass Du den IBM i connect konfigurieren kannst, andernfalls brauchst Du SSH Keys. Was auch geht ist das Terminal innerhalb VSCode.

Auf der IBM i Seite nimmst Du am besten den QP2TERM, Aufruf: "CALL QP2TERM". Allenfalls musst Du noch den Pfad für Node angeben: (Testen mit node -v)

PATH=/QOpenSys/pkgs/bin:$PATH (enter)
export PATH (enter)


Als Editor empfehle ich Dir VSCode von Microsoft. Wenn Du den nicht kennst, musst Du dich ein bisschen einarbeiten - für mich die beste IDE für solche Sachen. Kannst natürlich auch den RDi verwenden. VSCode kostet übrigens nix. Nur mal googeln und runterladen.

Beispiel mit dem idbConnector auf die IBM i Datenbank:

Ich nehme mal an, Du hast Node.js installiert via ACS. Kontrolle im QP2TERM node - v

1. Erstelle auf /home ein Verzeichnis njs o.ä.

2. gehe in deinem Terminal in das neue Verzeichnis

3. Initialisiere das Verzeichnis mit dem Command "npm init" Die Fragen kannst Du ausfüllen oder aber auch nicht - kann man später nachholen und ist vor allem wichtig, wenn es dann z.B. auf Git hochgeladen werden soll.

4. idbConnector runterladen mit "npm i idb-pconnector". Dies ist der Connector welcher auch Promises unterstützt.

5. Erstelle nun eine Node-Datei mit dem Editor deiner Wahl, z.B. Test.js oder IBMISCHLAGMICHTOT.js, wie immer Du willst ...

Es ist ein Beispiel aus GitHub, welches a) die Library-List ergänzt und b) aus der Beispielsbibliothek eine SQL Abfrage auf die Kundendatei macht. Also durchaus etwas, das man auch im Alltag gebrauchen kann.

Hier der Test Code:


const { Connection } = require('idb-pconnector');

async function setLibListExample() {

const connection = new Connection({ url: '*LOCAL' });

await connection.setLibraryList(['QIWS', 'QXMLSERV']);

const statement = connection.getStatement();

const results = await statement.exec('SELECT * FROM QCUSTCDT');

console.log(`results:\n ${JSON.stringify(results)}`);

await statement.close();

}

setLibListExample().catch((error) => {

console.error(error);

});

Beachte bitte, das Beispiel ist als asynchrone App mit async und await erstellt.

Mehr Beispiele:
Quelle: https://www.npmjs.com/package/idb-pconnector

Ebenso gibt es für diverse andere Datenbanken MSSQL, MySQL, Oracle, MariaDB, MongoDB etc., die entsprechenden Packages für den Zugriff. Nur googeln und ausprobieren.

Node.js ist faszinierend, aber ohne sich ausgiebig einzuarbeiten, geht da gar nix. Und es entwickelt sich rasant. Hier ist noch viel mehr am "Ball bleiben" gefragt.

p.s. ich hab's natürlich auch getestet und es läuft auch.
Ach ja, vergessen: Aufruf natürlich "node test.js"

Viel Spass

holgerscherer
05-02-20, 18:53
Hi Holger,
den ACS habe ich jetzt drauf. Allerdings finde ich nicht das richtige Package :-)

Gruß Michael

PS: Gibt es denn keinen node Entwickler ? Ich bin doch wohl nicht der erste oder ?????????????

Ich hätte ja jetzt sowas vermutet ;-)
550

mk
06-02-20, 11:39
Hallo Michael,

Ich muss mich in diese Materie auch noch viel tiefer einarbeiten, aber gebe ich dir noch eine ausführlichere Antwort (nach meinem Kenntnisstand):

Zur Terminalfrage:

Als Terminals kannst Du auf dem PC z.B. GitBash, PuttY, aber auch den normalen CMD von MS verwenden. PuttY hat den Vorteil, dass Du den IBM i connect konfigurieren kannst, andernfalls brauchst Du SSH Keys. Was auch geht ist das Terminal innerhalb VSCode.

Auf der IBM i Seite nimmst Du am besten den QP2TERM, Aufruf: "CALL QP2TERM". Allenfalls musst Du noch den Pfad für Node angeben: (Testen mit node -v)

PATH=/QOpenSys/pkgs/bin:$PATH (enter)
export PATH (enter)


Als Editor empfehle ich Dir VSCode von Microsoft. Wenn Du den nicht kennst, musst Du dich ein bisschen einarbeiten - für mich die beste IDE für solche Sachen. Kannst natürlich auch den RDi verwenden. VSCode kostet übrigens nix. Nur mal googeln und runterladen.

Beispiel mit dem idbConnector auf die IBM i Datenbank:

Ich nehme mal an, Du hast Node.js installiert via ACS. Kontrolle im QP2TERM node - v

1. Erstelle auf /home ein Verzeichnis njs o.ä.

2. gehe in deinem Terminal in das neue Verzeichnis

3. Initialisiere das Verzeichnis mit dem Command "node init" Die Fragen kannst Du ausfüllen oder aber auch nicht - kann man später nachholen und ist vor allem wichtig, wenn es dann z.B. auf Git hochgeladen werden soll.

4. idbConnector runterladen mit "npm i idb-pconnector". Dies ist der Connector welcher auch Promises unterstützt.

5. Erstelle nun eine Node-Datei mit dem Editor deiner Wahl, z.B. Test.js oder IBMISCHLAGMICHTOT.js, wie immer Du willst ...

Es ist ein Beispiel aus GitHub, welches a) die Library-List ergänzt und b) aus der Beispielsbibliothek eine SQL Abfrage auf die Kundendatei macht. Also durchaus etwas, das man auch im Alltag gebrauchen kann.

Hier der Test Code:


const { Connection } = require('idb-pconnector');

async function setLibListExample() {

const connection = new Connection({ url: '*LOCAL' });

await connection.setLibraryList(['QIWS', 'QXMLSERV']);

const statement = connection.getStatement();

const results = await statement.exec('SELECT * FROM QCUSTCDT');

console.log(`results:\n ${JSON.stringify(results)}`);

await statement.close();

}

setLibListExample().catch((error) => {

console.error(error);

});

Beachte bitte, das Beispiel ist als asynchrone App mit async und await erstellt.

Mehr Beispiele:
Quelle: https://www.npmjs.com/package/idb-pconnector

Ebenso gibt es für diverse andere Datenbanken MSSQL, MySQL, Oracle, MariaDB, MongoDB etc., die entsprechenden Packages für den Zugriff. Nur googeln und ausprobieren.

Node.js ist faszinierend, aber ohne sich ausgiebig einzuarbeiten, geht da gar nix. Und es entwickelt sich rasant. Hier ist noch viel mehr am "Ball bleiben" gefragt.

p.s. ich hab's natürlich auch getestet und es läuft auch.
Ach ja, vergessen: Aufruf natürlich "node test.js"

Viel Spass

Hi,

okay vielen Dank.
Ich werde mich demnächst weiter darum kümmern.
Gruß an *ALL