En muchos entornos (por ejemplo, Heroku), y como una convención, puede configurar la variable de entorno PORT
para decirle a su servidor web en qué puerto escuchar.
Eso process.env.PORT || 3000
significa: lo que sea que esté en la variable de entorno PORT, o 3000 si no hay nada allí.
Entonces, pasa eso app.listen
, o a app.set('port', ...)
, y eso hace que su servidor pueda aceptar un parámetro del entorno en qué puerto escuchar.
Si pasa 3000
codificado app.listen()
, siempre está escuchando en el puerto 3000, que puede ser adecuado para usted o no, según sus requisitos y los requisitos del entorno en el que está ejecutando su servidor.
Al alojar su aplicación en otro servicio (como Heroku, Nodejitsu y AWS), su host puede configurar la
process.env.PORT
variable de forma independiente para usted; después de todo, su script se ejecuta en su entorno.Elastic Beanstalk de Amazon hace esto. Si intenta establecer un valor de puerto estático como en
3000
lugar deprocess.env.PORT || 3000
donde 3000 es su configuración estática, entonces su aplicación generará un error de puerta de enlace 500 porque Amazon está configurando el puerto para usted.Esta es una aplicación Express mínima que se implementará en Elastic Beanstalk de Amazon:
fuente
const {PORT = 3000} = process.env
En algunos escenarios,
port
solo puede ser designado por el entorno y se guarda en una variable de entorno del usuario. A continuación se muestra cómo funcionan las aplicaciones node.js.El
process
objeto es un global que proporciona información y control sobre el proceso actual de Node.js. Como global, siempre está disponible para las aplicaciones Node.js sin usarrequire()
.La
process.env
propiedad devuelve un objeto que contiene el entorno del usuario.Un ejemplo de este objeto se ve así:
Por ejemplo,
terminal : establece una nueva variable de entorno de usuario, no de forma permanente
app.js : lea la nueva variable de entorno de la aplicación de nodo
terminal : ejecute la aplicación de nodo y obtenga el valor
fuente