Also habe ich zum ersten Mal eine Seite mit Knoten und pm2 eingerichtet, und ich gehe zurück und mache einige Optimierungen und lese Best Practices, etc.
Ich habe gelesen, dass Sie eine Menge Vorteile haben können, wenn Sie NODE_ENV=production
einstellen.
Ich habe das in den PM2-Dokumenten gefunden:
%Vor%Also, ich habe es getan, aber ich habe keine Ahnung, ob es funktioniert. Während ich versuchte, herauszufinden, wie ich es überprüfen kann, lernte ich es zu versuchen:
%Vor%Also, das ist kein gutes Zeichen ... aber mit meinem begrenzten Verständnis davon, wie das Low-Level-Zeug funktioniert, kann ich vermuten, dass pm2 jede App als einen separaten Knotenprozess startet? Vielleicht bin ich nicht im richtigen Prozess, wenn ich versuche, es zu überprüfen.
Außerdem weiß ich nicht, ob ich eine neue ~ / .pm2 / dump.pm2-Datei erstellen muss, weil vielleicht immer, wenn das die Optionen, die ich eingestellt habe, möglicherweise außer Kraft gesetzt wird? (Weil ich pm2 startup
benutzt habe).
Wie überprüfe ich, ob der NODE_ENV meiner PM2-App eingestellt ist?
Um die eigentliche Frage im Titel expliziter zu beantworten:
In meinem Skript, für mich die app.js
-Datei meiner Express-App, können Sie process.env.NODE_ENV
verwenden, um den aktuellen Wert von NODE_ENV
zu erhalten und dies bei Bedarf zu protokollieren.
Ein noch besserer Weg ist das PM2-Modul Process Measures, aka pmx
.
oder
%Vor%dann
%Vor%Jetzt wird es in Aufrufen von pm2 show appname (unten) oder in pm2 monit (unten links) angezeigt.
Es scheint, dass alles, was tatsächlich notwendig ist, ist, dass Sie den Prozess beenden und neu starten, um Ihre Umgebung zu ändern.
%Vor%Folgendes ist nicht gut genug:
%Vor%Sie müssen den Prozess beenden
Also, ich habe es zur Arbeit gebracht. Ich denke, es hatte etwas damit zu tun, dass die Umgebung im Init-Skript gespeichert wurde, denn nachdem alles gelöscht und neu gestartet wurde, funktionierte es.
Hier ist, wie ich es gemacht habe.
%Vor%Was den folgenden Befehl für mich zum Kopieren-Einfügen ausgibt:
%Vor%Und dann:
%Vor% pm2.json
ist meine Konfigurationsdatei.
Und dann habe ich die Logs überprüft und, tatsächlich, sagt es production
anstelle von undefined
.
Also, um es zusammenzufassen, ich glaube nicht, dass ich etwas falsch gemacht habe, aber ich hatte bereits das init-Skript erzeugt und die Konfiguration gespeichert und es hat die neue Umgebung aus irgendeinem Grund nicht benutzt.
Ihre process.json-Datei ist unvollständig. Verwenden Sie etwas wie folgt:
%Vor%Fügen Sie dann Ihrem Code Logging hinzu, vorzugsweise am Start:
%Vor%Starten Sie nun die Anwendung:
%Vor%Zuletzt zu sehen App-Logs:
%Vor%Das sollte es tun.
Möglicherweise steht am Anfang Ihres Server-Skripts, Sie können den Wert der Umgebungsvariablen drucken und dann die PM2-Protokolle überprüfen. Verwenden Sie den folgenden Code, um den Umgebungsvariablenwert zu drucken:
%Vor%Und dann verwenden Sie den folgenden Code, um die PM2-Protokolle anzuzeigen
pm2 protokolliert app_name
Hier ist app_name
Ihr Prozessname, wie durch den Eintrag in der process.json
-Datei angegeben.