Konsolen-Ausgabe von Node-Server

  • Hallo!


    Ich habe eine absolute n00b-Frage, aber leider im Wiki und der Plesk-Doku keine Information gefunden.


    Wo ist die Konsole vom Node-Server zu sehen? Wenn der App Abhängigkeiten fehlen, Tippfehler im Code sind oder Ausgaben von console.log()?


    Muss in Phusion Passenger ein Logfile bestimmt werden? Auch dort fand ich nichts.


    Ich habe das Paket Webhosting 4000.


    Liebe Grüße

    Thomas

  • Hallo da du bis dato 117 Aufrufe hast und noch keine Antwort schreib ich dir mal hier, ich habe selbst meine Webseite in Node.js geschrieben.


    Leider gibt es keine Ausgabe der "console.log()" die du hier einsehen könntest. Nun zu deiner ersten Frage, Abhängigkeiten der Node.js App trägst du unter dependences in der package.json Datei ein, diese sollte in dem gleichen Ordner liegen wie deine App.js.


    Ein kleines Beispiel, du willst auf deinem Webhostingserver das npm Module "express" in der Version 4.16.2 als Abhängigkeit installieren, dann muss deine package.json Datei wie folgt aussehen:

    Code
    {
      "name": "my_package",   <- Name deiner App (kannst du selbst entscheiden)
      "version": "1.0.0",     <- Version deiner App (kannst du selbst entscheiden)
      "dependencies": {
        "express": "4.16.2"   <- Hier trägst du deine Abhängigkeiten ein.
      }
    }


    Im Control Panel Webhosting > Node.js kannst du die Abhängigkeiten dann über +npm-Installationen automatisch auf den Server installieren.

    Als nächstes stellst du den Anwendungsmodus auf deployment damit bekommst du bei einer Fehlermeldung eine Übersicht welcher Fehler vorhanden ist.


    Bei der Programmierung benutzt du am besten ein IDE wie Sublime Text, Atom, Bracets oder Virtual Code Studio. Öffne dort dein Project und setze den Port worauf die App läuft auf z.B 3000, Starte die App.js aus dem IDE und rufe die Webseite im Browser mit localhost:3000 auf, (Installiere am besten noch nodemon auf deinen Rechner, damit wird die App.js bei jeder Änderung neu gestartet und du brauchst nur noch den Browser aktualisieren um die Änderung zu sehen.) du siehst dann in der Console vom IDE die Ausgaben von console.log und Fehler in Echtzeit.


    Tutorials wie das alles funktioniert findest du zuhauf auf YouTube und co.


    Willst du dennoch vollen Zugriff auf alles haben, musst du dir leider einen vServer, Root-Server oder Managed Server zulegen. Das sind so die Grundlagen die ich dir mitgeben kann.

  • Vielen Dank.


    Ich habe mittlerweile auch herausgefunden, dass im Development-Modus Fehlermeldungen auf der Webseite öffentlich stehen. Das ist halt bei Plesk so. In Verbindung mit dem automatischen Serverneustart ergibt das wohl Sinn, ist aber halt zum Entwickeln und nicht fürs produktive Monitoring.


    Meine App ist fertig, läuft bei mir lokal und auf einem anderen Server produktiv. Manche Funktionen davon gehen aber auf dem Netcup-Server nicht, das muss ich analysieren können. Momentan wird an den Browser nur eine Fehlermeldung von Passenger geschickt, nach der man ins Log gucken muss.


    Wie NPM-Pakete und Nodejs-Entwicklung funktionieren, weiß ich schon. Ich entwickele Node-Server, deshalb bin ich bei Netcup. Das Deployment geht mit Plesk ganz ordentlich, vor allem in Verbindung mit Git ist das eine runde Sache.


    Ich war gerade dabei mit Winston oder so die Fehlermeldungen in eine Datei umzuleiten. Damit wäre das Problem weitestgehend behoben. Aber das reicht nicht, da fertige Node-Apps Konsolenausgaben schreiben und sich nicht unbedingt umkonfigurieren lassen. Die Konsole wird einfach als Standard von den üblichen Apps vorausgesetzt, und Passenger erwartet, dass der Admin Zugriff auf seine Logfiles hat.


    Weiß eventuell jemand, warum Netcup die Logfiles nicht im Chroot zum Lesen anbietet? Immerhin ist das normal bei Plesk und so wie es jetzt ist wahrscheinlich kaputt. Ein Rootserver ist für mich nicht die Alternative, denn ich wollte gerade das administrierte Plesk benutzen.


    Liebe Grüße

    Thomas

  • Versuchs doch mit einem managed Server, da ist auch Plesk installiert und du kannst diesen individuell konfigurieren lassen.

  • Den Fehler habe ich mit einer Umleitung der Exceptions in eine Datei gefunden, ich hatte den Datenbank-Server falsch angegeben. Der Weg ging nur, weil das eine kleine App ist, an der ich rumprogrammieren konnte.


    Woanders einen Server habe ich schon, das verringert das Problem hier irgendwie nicht. Ich brauche einfach Webspace mit dem dokumentierten Plesk oder irgendwie anders einen stimmigen Funktionsumfang. Wie machen das denn die anderen hier? Im Blindflug die Ausgaben ignorieren ist nicht so recht, wie ich Administration gewohnt bin.


    Thomas

  • Webhosting Pakete sind auch nur für kleinere Applikationen gedacht, du bezahlst weniger als 10 Euro. Ich hatte das selbige Problem, der Funktionsumfang ist sehr gering. Es gibt keine Option die Konfigurationsdateien für Apache und/oder ngnix nach belieben zu ändern, Zugriff auf Plugins im MySQL sind nicht möglich usw.


    Nach Rücksprache mit dem technischen Support von netcup war das Ergebnis: Vollen Zugriff erhält man nur ab einem vServer, Webhosting Pakete sind dafür nicht geeignet - ergo Keine erweiterter Funktionsumfang.

  • Mir ist klar, dass serverweite Konfigurationen nicht beliebig angepasst werden können. Den Nginx möchte ich auch gar nicht konfigurieren. Der Funktionsumfang ist bei Netcup gar nicht so gering. Es gibt sogar den Entwickler-Modus, in dem sich der Server bei Änderungen vom Code neu startet und Abstürze auf der Webseite eingeblendet werden. Man kann mit Git klonen und NPM-Pakete auf Knopfdruck aktualisieren. Den Umfang finde ich persönlich beeindruckend.


    Neben den ganzen Entwickler-Werkzeuge gibt es ein paar Funktionen, die man als Admin im Produktivbetrieb braucht. Dazu gehört ein Logfile. Bei PHP gibt es das selbstverständlich, und von Plesk/Passenger ist das auch fest vorgesehen. Startet mal Etherpad oder irgendwas auf Express-Basis, da gibt es eigentlich immer Konsolenausgaben.


    Ich möchte nicht einen Reverse Proxy auf einen Unter-Pfad einrichten. Ich möchte nicht stand alone MongoDB installieren. Es geht mir nur darum, dass ich eine grundlegende Funktion nicht finde, die eigentlich ohne Aufwand bereits da sein müsste. Es wäre unlogisch, wenn für Devs ein paar schöne Tools gegeben wären, aber für den praktischen Einsatz nicht.


    Auch wenn der Hinweis jetzt zweimal kam: Natürlich kann ich woanders etwas anderes bestellen.