[NEWSboard IBMi Forum]
Seite 2 von 2 Erste 1 2

Thema: node js

  1. #13
    Registriert seit
    Jan 2001
    Beiträge
    832
    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 ?

  2. #14
    Registriert seit
    Jan 2001
    Beiträge
    832
    Zitat Zitat von holgerscherer Beitrag anzeigen
    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 ?????????????

  3. #15
    Registriert seit
    Jan 2007
    Beiträge
    904
    Wirf mal einen Blick darauf:
    https://www.scottklement.com/present...%20IBM%20i.pdf

    alternativ gäbe es noch entsprechende YT Videos.
    kf

  4. #16
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    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

  5. #17
    Registriert seit
    Jan 2007
    Beiträge
    904
    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:

    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
    Last edited by camouflage; 11-02-20 at 16:14. Grund: edit: "npm init" sollte es natürlich heissen
    kf

  6. #18
    Registriert seit
    Aug 2001
    Beiträge
    2.644
    Zitat Zitat von mk Beitrag anzeigen
    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 ;-)
    Click image for larger version. 

Name:	Bildschirmfoto 2020-02-05 um 19.52.05.png 
Views:	9 
Size:	17,7 KB 
ID:	550
    www.RZKH.de
    IBM Champion 2022, 2023, 2024
    IBM i Community Advocate https://www.youracclaim.com/badges/6...c-7ad4ba147af6
    Common / CEAC
    http://pub400.com

  7. #19
    Registriert seit
    Jan 2001
    Beiträge
    832
    Zitat Zitat von camouflage Beitrag anzeigen
    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 "node test.js"

    Viel Spass
    Hi,

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

Similar Threads

  1. Verbindungsproblem / Lizenzproblem node.js
    By Frankk in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 19-08-19, 10:01
  2. Wie nähert man sich dem Thema Node.js auf der IBM i ?
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 04-07-17, 12:59

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •