à quoi process.env.PORT || 3000
sert Node.js? J'ai vu ça quelque part:
app.set('port', process.env.PORT || 3000);
S'il est utilisé 3000
comme port d'écoute, puis-je l'utiliser à la place?
app.listen(3000);
Sinon pourquoi?
Dans de nombreux environnements (par exemple Heroku), et par convention, vous pouvez définir la variable d'environnement PORT
pour indiquer à votre serveur Web sur quel port écouter.
Cela process.env.PORT || 3000
signifie donc : tout ce qui se trouve dans la variable d'environnement PORT, ou 3000 s'il n'y a rien.
Donc, vous passez cela app.listen
, ou à app.set('port', ...)
, et cela permet à votre serveur d'accepter un paramètre de l'environnement sur quel port écouter.
Si vous passez 3000
à codé en dur app.listen()
, vous êtes toujours à l'écoute sur le port 3000, ce qui peut être juste pour vous, ou non, en fonction de vos besoins et des exigences de l'environnement dans lequel vous exécutez votre serveur.
si vous exécutez node index.js
, Node utilisera3000
Si vous exécutez PORT=4444 node index.js
, Node utilisera process.env.PORT
ce qui équivaut à 4444
dans cet exemple. Exécutez avec sudo
pour les ports inférieurs à 1024.
Lors de l'hébergement de votre application sur un autre service (comme Heroku, Nodejitsu et AWS), votre hôte peut configurer indépendamment la
process.env.PORT
variable pour vous; après tout, votre script s'exécute dans leur environnement.C'est ce que fait Elastic Beanstalk d'Amazon. Si vous essayez de définir une valeur de port statique comme
3000
au lieu deprocess.env.PORT || 3000
où 3000 est votre paramètre statique, votre application entraînera une erreur de passerelle 500 car Amazon configure le port pour vous.Il s'agit d'une application Express minimale qui se déploiera sur Elastic Beanstalk d'Amazon:
la source
const {PORT = 3000} = process.env
Dans certains scénarios,
port
ne peut être désigné que par l'environnement et est enregistré dans une variable d'environnement utilisateur. Voici comment les applications node.js fonctionnent avec.L'
process
objet est un global qui fournit des informations sur le processus Node.js actuel et le contrôle sur celui-ci. En tant que global, il est toujours disponible pour les applications Node.js sans utiliserrequire()
.La
process.env
propriété renvoie un objet contenant l'environnement utilisateur.Un exemple de cet objet ressemble à:
Par exemple,
terminal : définir une nouvelle variable d'environnement utilisateur, pas de manière permanente
app.js : lire la nouvelle variable d'environnement depuis l'application de nœud
terminal : exécutez l'application de nœud et obtenez la valeur
la source