Mejores Prácticas Fundamentales de Node.js
Una lista de verificación para ejecutar servicios Node.js de forma segura en producción: disciplina de versiones, higiene del entorno y respeto por el modelo de un solo hilo.
Busca en todas las páginas de la documentación
Una lista de verificación para ejecutar servicios Node.js de forma segura en producción: disciplina de versiones, higiene del entorno y respeto por el modelo de un solo hilo.
engines en package.json y aplícalo en CI. Usa engine-strict=true o un script de puerta de preinstalación..nvmrc o .node-version y haz que coincida con las imágenes base de Docker. node:24.18.0-bookworm-slim, no node:latest.process.version al inicio y exponlo en /health. Acelera la clasificación de incidentes cuando las flotas se desvían."type": "module"). Documenta cualquier excepción CJS con un ADR.node: para las importaciones integradas. import fs from 'node:fs/promises' aclara la intención.fetch integrado, node:test y node:assert antes que sus equivalentes de npm. Menos superficies de cadena de suministro.package-lock.json confirmado y usa npm ci en CI. Instalaciones reproducibles en todas las máquinas.process.env después del arranque, excepto en pruebas. Trata el entorno como una configuración inmutable.AsyncLocalStorage para el contexto de la solicitud.NODE_ENV=production en entornos desplegados. Algunas bibliotecas cambian su comportamiento en función de ello.process.env. Redacta en los registros estructurados.SIGTERM y SIGINT para un apagado elegante. Cierra servidores y pools de bases de datos antes de salir.process.on('unhandledRejection') para registrar y salir.JSON.parse enormes.node.--trace-warnings y --trace-deprecation en CI. Detecta la deuda de actualización antes de la producción.process.report). Practica antes de la primera llamada a las 3 a.m.La deriva de versiones es la causa raíz de la mayoría de los incidentes de "funciona localmente": API incorrectas, compilaciones nativas fallidas y parches de seguridad no coincidentes.
Los nuevos servicios deben usar ESM en Node 24. CJS es mantenimiento heredado; las excepciones necesitan un ADR y una fecha de caducidad.
Muchas bibliotecas (Express en modo producción, algunos formateadores de registro) aún se ramifican en él. Configúralo explícitamente; no confíes en su ausencia.
>=24.18.0 <25 para Node 24 Active LTS. Durante la migración, documenta un rango dual temporal con una fecha de caducidad.
Trata las severidades críticas/altas como bloqueadores. La lista de fundamentos se centra en el tiempo de ejecución; consulta la sección de Seguridad para conocer la política completa.
Los orquestadores pueden reiniciar pods con imágenes obsoletas. La salida de salud demuestra que el binario en ejecución coincide con el parche previsto.
Los singletons a nivel de módulo (pool de DB, configuración) están bien. Los datos por solicitud en globales no lo están; usa AsyncLocalStorage.
Añade a .npmrc:
engine-strict=true
Permitido si la producción permanece fijada a Node 24 y las pruebas de CI se realizan con el tiempo de ejecución de producción, no con atajos solo para desarrollo.
Cada candidato a lanzamiento y dentro de una semana de cualquier aviso de seguridad de Node que afecte a tu línea principal.
No. Esta lista cubre los fundamentos; combínala con las Mejores Prácticas del Bucle de Eventos para el rendimiento asíncrono.
status, versión de node y SHA de compilación/git. Opcional: campo ltsPolicy de tu script de puerta de versión.
Versiones de la pila: Esta página fue escrita para Node.js 24.18.0 (LTS Activo), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 y NestJS 11.
Revisado por Chris St. John·Última actualización: 16 jul 2026