In vielen Umgebungen (z. B. Heroku) und als Konvention können Sie die Umgebungsvariable festlegen PORT
, um Ihrem Webserver mitzuteilen, welchen Port er abhören soll.
Also process.env.PORT || 3000
bedeutet: was auch immer in der Umgebungsvariablen PORT ist, oder 3000, wenn dort nichts ist.
Wenn Sie das app.listen
oder an übergeben app.set('port', ...)
, kann Ihr Server einen Parameter aus der Umgebung akzeptieren, auf welchen Port Sie warten sollen.
Wenn Sie 3000
fest codiert übergeben app.listen()
, lauschen Sie immer auf Port 3000, der je nach Ihren Anforderungen und den Anforderungen der Umgebung, in der Sie Ihren Server ausführen, möglicherweise nur für Sie bestimmt ist oder nicht.
Nitzan schüttelte sich
quelle
Wenn Sie Ihre Anwendung auf einem anderen Dienst (wie Heroku, Nodejitsu und AWS) hosten, kann Ihr Host die
process.env.PORT
Variable unabhängig für Sie konfigurieren . Schließlich läuft Ihr Skript in ihrer Umgebung.Amazon Elastic Beanstalk macht das. Wenn Sie versuchen, einen statischen Portwert festzulegen, z. B.
3000
anstelle vonprocess.env.PORT || 3000
3000 als statische Einstellung, führt Ihre Anwendung zu einem 500-Gateway-Fehler, da Amazon den Port für Sie konfiguriert.Dies ist eine minimale Express-Anwendung, die auf Amazon Elastic Beanstalk bereitgestellt wird:
quelle
const {PORT = 3000} = process.env
In einigen Szenarien
port
kann nur von der Umgebung festgelegt werden und wird in einer Benutzerumgebungsvariablen gespeichert. Im Folgenden erfahren Sie, wie die Apps von node.js damit arbeiten.Das
process
Objekt ist ein globales Objekt, das Informationen zum aktuellen Node.js-Prozess und dessen Kontrolle bereitstellt. Als globales Programm steht es Node.js Anwendungen immer ohne Verwendung zur Verfügungrequire()
.Die
process.env
Eigenschaft gibt ein Objekt zurück, das die Benutzerumgebung enthält.Ein Beispiel für dieses Objekt sieht folgendermaßen aus:
Beispielsweise,
Terminal : Legen Sie eine neue Benutzerumgebungsvariable fest, nicht dauerhaft
app.js : Liest die neue Umgebungsvariable aus der Knoten-App
Terminal : Führen Sie die Knoten-App aus und rufen Sie den Wert ab
quelle