express.js im Paket Webhosting 4000

  • Sehr geehrte Community,


    ich versuche eine relativ einfache Seite zum laufen zu bringen auf der Basis von node.js und express.js.

    Da der Support mir dies nicht beantworten möchte, versuche ich es nun hier. Teilweise gibt es hier im Forum schon ähnliche Fragen, die bisher aber nicht beantwortet wurden. Ich hoffe, dass ich hier mit etwas mehr Details mehr Glück habe:


    Node ist aktiviert.

    app.js liegt in httpdocs und wird auch entsprechend erkannt, Dokumentenstamm ist der Unterordner views mit z.B. index.ejs und weiteren Frontend-Dateien.

    npm install funktioniert und lädt die richtigen node-modules.


    Der Befehl npm run start führt zu:

    Code
    # npm run start
    Process exited with non-zero exit code '1'
    
    > ***@0.0.0 start
    > node ./bin/www
    
    Running on PORT:  3000
    
    Port 3000 is already in use


    Der Aufruf der Seite führt zu:


    Zitat

    We're sorry, but something went wrong.

    The issue has been logged for investigation. Please try again later.


    Der Grund ist wohl, dass sich der Port 3000 für die express Anwendung nicht öffnen lässt.

    Gibt es eine Alternative?

    Ich habe andere Forenbeiträge gesehen (mit anderen Problemen), die aber zumindest eine express Anwendung gestartet haben. Nur leider wird nicht ersichtlich wie.

    Hat jemand von euch dabei Erfahrung und könnte mir mitteilen, wie ich da vorgehen muss?


    Vielen Dank und viele Grüße.

  • Du darfst den Port nicht selber fest definieren. Den gibt Plesk vor. Statt der 3000 musst du die Umgebungsvariable verwenden: process.env.PORT

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


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

  • das ist schon mal ein guter ansatz, vielen dank erstmal.


    ist die variable denn dann von Plesk schon definiert? muss ich etwas vorher laden?


    mein test

    Code
    #!/usr/bin/env node
    console.log('test port:');
    
    console.log(process.env.PORT);

    gibt leider nur undefined aus.

  • ist die variable denn dann von Plesk schon definiert? muss ich etwas vorher laden?

    Schau dir mal die Seite hier an: https://www.plesk.com/blog/pro…ology/node-js-plesk-onyx/

    Da gibt es auch ein Beispiel, wo das gut zu erkennen ist: https://github.com/plesk/node-…rld/blob/master/app.js#L3

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


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

    Gefällt mir 1

  • Ach, vielen Dank. Der Link hat sehr gut weitergeholfen. Das Beispielprojekt läuft nun ohne Probleme. Das Projekt, das ich versuche hier zum Laufen zu kriegen ist völlig anders strukturiert, und daher vermutlich mit der Plesk Umgebung nicht kompatibel, sollte sich aber umschreiben lassen.


    Danke und noch einen guten Tag!