Express/NESTjs als Backend / Angular als Frontend

  • Moin, Moin,


    auf dem Webhosting 8000 soll ein Angular Frontend (läuft bereits) mit einer NESTjs im Backend laufen.

    NEST benutzt Express.js um zu reagieren. Daher bitte ich um einen Tipp, wie ich den htttp.server aufsetzen soll.


    Leider fehlen mir zum Server mit der Plex Umgebung + NodeJS die korrekten Umgebungsvarialen (Ports...) um NestJS auf den Server zu bringen. Haben Sie zu diesem Thema ein Anweisungsschema? Oder einen sinnvollen Link?Danke.

    :)

  • Moin Moin,


    der Webhost befindet sich ja auf dem viruaellen Server:

    /var/www/vhosts/hosting14????.a2???.netcup.net/httpdocs/testwebside.de/

    Dennoch kann von Aussen die JS-Anwendung (gibt nur ein HALLO WELT) bei jedem aufruf wieder finden.

    :)

    Und ja, ich habe nur wenig Wissen über Server, eben nur Anwender der Frameworks Angular und NEST... .

  • Moin Moin,


    bei WEBHOSTING8000 läuft zwar Node, aber leider funktionieren selst der node -v Befehl per PUTTY nicht. Wie auch immer. Wenn das Verzeichnis 'node_modules' mit in der httpdocs gelegt wird, läuft zumindesten die Anwendungen.
    Tja, es muß nur der PORT 8080 in der main.js bestimt werden:


    Code
    Object.defineProperty(exports, "__esModule", { value: true });
    const core_1 = require("@nestjs/core");
    const app_module_1 = require("./app.module");
    async function bootstrap() {
        const app = await core_1.NestFactory.create(app_module_1.AppModule);
        await app.listen(8080);
    }
    bootstrap();
  • Moin Moin,


    leider bin ich wieder an dem Punkt angekommen, wo ich NEST.JS auf meiner Webside.de zum laufen bringen möchte.

    Selbst das die Grundversion 'Hallo Welt' bekomme ich auch unter Port 8080 keine Antwort beim Aufrufen. Im localhost:3000 bzw. localhost:8080 gehts.


    Node ist im Plesk aktiviert und main.js neu gestartet.


    Hat irgendwer es bereits geschafft???

    Und wenn, wie???


    DANKE! Für einen weiteren Tipp.


    Grüße


    Juergen

    angulartool.de

  • Hay,


    einfache Antwort: im Webhosting bekommst Du keine eigenen Ports nach außen.


    CU, Peter

    Peter Kleemann // https://www.pkleemann.de // +49 621 1806222-0 // Kann Programme, Internet, Netzwerke und Telefon.

  • OK,

    das habe ich eigentlich nicht erwartet, jedoch 8080 läuft zu mindestens.

    Auch ist es nicht schön, dass die Laufzeit begrenzt ist, d.h. nach einer Zeit (ca. 5min.) wird neu gestartet, alles ist dann wieder bei init.

    Trotzdem Danke für die Info.

  • Hay,

    das habe ich eigentlich nicht erwartet

    naja, wenn Du einem Webhosting bist, bist Du ja nicht alleine auf dem Server. Da laufen unter Umständen hunderte Domains und zig Kunden auf derselben Maschine. Wenn zwei Nutzer denselben Port nach außen aufmachen, welchen soll der Server, auf dem dem der Webserver läuft, denn nun bedienen? Dass der Webserver (also die Webserversoftware) SNI kann, ist ein protokollbedingter Einzelfall. Aber selbst da - stell Dir vor, zwei User bekämen es hin, dieselbe Domain einzurichten... Fast alles andere antwortet nur auf IP-Adressen und die ist dann für zig Nutzer dieselbe.


    CU, Peter

    Peter Kleemann // https://www.pkleemann.de // +49 621 1806222-0 // Kann Programme, Internet, Netzwerke und Telefon.

    Gefällt mir 1
  • Immerhin nun läuft meine Testversion auf: http://www.testwebside.de/hello.



    "use strict";

    Object.defineProperty(exports, "__esModule", { value: true });

    const core_1 = require("@nestjs/core");

    const app_module_1 = require("./app.module");

    async function bootstrap() {

    const app = await core_1.NestFactory.create(app_module_1.AppModule);

    await app.listen(3000);

    }

    bootstrap();



    Hierbei ist es egal, ob Port 3000 oder 8080 genommen wurde. Daher kann ich das mit den Ports nicht ganz verstehen.

    Im Grunde möchte ich eine Angular Services (Objektdaten) auf den Server belassen und über die Angular Eingabe eine serverseitige Berechnung (NESTjs) durchführen und nur das Ergebnis an das Frontend geben.



    Dankend mit Grüße


    Juergen

    JGLib22

  • Immerhin nun läuft meine Testversion auf

    Wie genau hast du das angestellt? Hab das gestern auch mal aus Interesse probiert eine NestJS-Anwendung laufen zu lassen.

    Ich habe aber weder rausgefunden, wie man sich Logs (Console) zur laufenden Node-Anwendung anzeigen lassen kann, noch wie man überhaupt die Anwendung aufrufen bzw. eine URL/Domain darauf weiterleiten kann.

    RS Brezn | VPS 500 G8 Plus | 2× VPS Karneval 2020 | VPS Pocket Admin | RS Cyber Quack | Webhosting EiWoMiSau


    Dieses Gebäude hat mir die Vorfahrt genommen! *hup*

  • Dank der Hilfe aus dem Forum ging eine Lösung:


    Alles über das Terminal ausführen:


    a) NESTJS auf dem PC installieren : npm i -g @nestjs/cli

    b) Mit dem Befehl prüfen ob alles geklappt hat: nest -v

    c) In das gewünschte Verzeichnis gehen (vorher eines evtl. Erstellen): cd .....

    d) Erstellen der Basis-Anwendung : nest new DEIN_PROJEKT_NAME.

    e) in das Verzeichnis gehen: cd ....../DEIN_PROJEKT_NAME


    Der Standard-Weg:

    f) Dern LocalServer laufen lassen: npm run start:dev

    g) nun wird 'Hello Word" wird geantwortet auf: //http://localhost:3000/


    Nun der Weg zum Netcup Server:

    alle Terminals schließen, damit der Server nicht läuft.


    h) Nur die Anwendung "anstoßen": npm run start (:dev fehlt!)

    i) alle Terminals schließen!

    j) Nun die Files für den Server erstellen: nest build

    - im Arbeitsverzeichnis wird ein neues Verzeichnis mit .../dist erstellt.


    Diese Schritte gehen am Besten mit dem Filezilla:

    k) Die entstandenen Dateien unter .../dist direkt in das Verzeichnis auf dem Netcupserver kopieren:


    pasted-from-clipboard.pngpasted-from-clipboard.png


    m) Nun damit es auf dem NetCup Servfer läuft: Auch das GESAMTE Verzeichnis vom node_modules per Filezilla auf den Server kopieren. (Siehe oben)


    n) Dann die NetCup-Webseite aufrufen, sich im CCP einloggen und unter dem Reiter Produkte den Plesk aufrufen:

    pasted-from-clipboard.png


    o) Dann die Webseite aus der Liste aussuchen und anklicken.

    p) Dann kommt die Einstellungen zur Webseite, dort dann Node.js anklicken.

    pasted-from-clipboard.png


    q) dann Node starten.

    r) Dann alle Einträge so wie gezeigt einstellen:



    pasted-from-clipboard.png



    Wichtig: Bei ALLEN ÄNDERUNGEN durch NEUE KOPIEN PER FILEZILLA AUF DEN SERVER DIESE ANWENDUNG AUCH WIEDER PER App neu starten ZUM LAUFEN BRINGEN.


    Das Ergebnis der simplen Serveranwendung unter:

    https://testwebside.de/hello




    Beste Grüße

    Jürgen


    www/testwebside.de

    www/angulartool.de

  • Juergen-bhv

    Hat den Titel des Themas von „Express/NESTjs als Backend“ zu „Express/NESTjs als Backend / Angular als Frontend“ geändert.
  • Falls es nach der obigen Anleitung noch nicht läuft, dann prüft ob:

    • die app.js/main.js/... oder wie die Anwendung heißt, ausführbar ist
    • die Node-JS-Version gesetzt ist, mit der das Projekt gebaut wurde


    Viele Grüße


    Andreas

  • Sorry für meine späte Antwort.

    Das Node.ja läuft nur bedingt im Webhosting. Auch nicht ununterbrochen und muss immer neu automatisch gestartet werden. Daher werde ich das Backeng als PHP Server aufbauen. Vielleicht habe ich dann mehr Glück..