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:
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 "n
ode test.js"
Viel Spass
Bookmarks