Configuración
Parte de la sección API REST del Journey de Node.js de Coddy. Lección 23 de 25.
En tu computadora portátil, el servidor escucha en el puerto 3000. Un servicio de alojamiento lo inicia con node server.js y elige el puerto por su cuenta, pasándolo en el entorno como PORT. El host también llama a una ruta como GET /health de vez en cuando y reinicia el servidor cuando deja de responder.
// MAX_UPLOAD_MB=5 node server.js
const maxUpload = Number(process.env.MAX_UPLOAD_MB ?? 2);
const shopName = process.env.SHOP_NAME ?? 'My Shop';Todos los valores de process.env son cadenas, y '5' + 1 es '51', así que convierte los números con Number. Lee la configuración en un archivo, config.js, e impórtala en todas partes, para que nada más acceda a process.env.
Desafío
FácilEn un servicio de alojamiento, el proveedor elige el puerto y pasa la configuración a tu servidor mediante el entorno. Lee la configuración del entorno en un solo lugar y añade una ruta a la que el proveedor pueda llamar para comprobar que el servidor está activo.
- En
config.js, leeportde la variable de entornoPORTypageSizedePAGE_SIZE. Ambas llegan como texto, así que conviértelas en números. Si falta una variable, conserva los valores actuales: 3000 y 10. - En
server.js, importaconfig. Inicia el servidor enconfig.porte imprime el puerto que utiliza. ConPORT=8080, la Consola muestra exactamente:Task tracker API on port 8080 - En
routes/tasks.js, importa tambiénconfig. En la ruta de la lista, una solicitud sin?limit=usaconfig.pageSizeen lugar de 10. Si la solicitud incluye?limit=, ese valor tiene prioridad. - En
server.js, añadeGET /health, fuera del enrutador de tareas. Devuelve el estado 200 y exactamente:{ "status": "ok" }
Esta lección se ejecuta con PORT=8080 y PAGE_SIZE=2.
Pruébalo: pulsa Ejecutar y la Consola imprime Task tracker API on port 8080. GET /api/v1/tasks devuelve 2 tareas con "total": 3 y "pages": 2. GET /api/v1/tasks?limit=3 devuelve las 3. GET /health devuelve { "status": "ok" }.
Pruébalo tú mismo
// Los ajustes que cambian entre tu portátil y un servidor.
// Lee cada uno de process.env y conserva estos valores como predeterminados.
export const config = {
port: 3000,
pageSize: 10,
};
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de API REST
1Recursos y verbos
Recursos y URLCrear con POST4Navegadores, versiones y configuración
Qué es un origenPermitir otro origenCORSUna página que llama a la APIPractica por tu cuenta: Playground de Express