La guía o código que encontrarás en este post es la solución más sencilla y efectiva que encontramos a esta inquietud o dilema.
Solución:
En muchos entornos (por ejemplo, Heroku), y como convención, puede establecer la variable de entorno PORT
para decirle a su servidor web en qué puerto escuchar.
Asi que process.env.PORT || 3000
significa: lo que sea que esté en la variable de entorno PORT, o 3000 si no hay nada allí.
Entonces le pasas eso a app.listen
o para app.set('port', ...)
y eso hace que su servidor pueda aceptar un parámetro “en qué puerto escuchar” del entorno.
si pasas 3000
codificado para app.listen()
siempre está escuchando en el puerto 3000, que puede ser solo para usted o no, según sus requisitos y los requisitos del entorno en el que ejecuta su servidor.
-
si tu corres
node index.js
,Nodo utilizará3000
-
Si tu corres
PORT=4444 node index.js
el nodo usaráprocess.env.PORT
que es igual a4444
en este ejemplo. Corre consudo
para puertos por debajo de 1024.
Al alojar su aplicación en otro servicio (como Heroku, Nodejitsu y AWS), su host puede configurar de forma independiente el process.env.PORT
variable para ti; después de todo, su script se ejecuta en su entorno.
Elastic Beanstalk de Amazon hace esto. Si intenta establecer un static valor de puerto como 3000
en vez de process.env.PORT || 3000
donde 3000 es tu static configuración, su aplicación generará un error de puerta de enlace 500 porque Amazon está configurando el puerto por usted.
Esta es una aplicación Express mínima que se implementará en Elastic Beanstalk de Amazon:
var express = require('express');
var app = express();
app.get('/', function (req, res)
res.send('Hello World!');
);
// use port 3000 unless there exists a preconfigured port
var port = process.env.PORT || 3000;
app.listen(port);
Te mostramos comentarios y puntuaciones
Nos puedes defender nuestro trabajo poniendo un comentario y puntuándolo te lo agradecemos.