Introducción: Cómo escribir tu propio servidor de archivos estáticos en Node.js puro. Este artículo muestra de forma clara y práctica los pasos básicos para servir archivos desde una carpeta public sin recurrir a frameworks, cuándo puede ser útil y por qué para proyectos reales es preferible optar por soluciones más completas.
Prerequisitos: un ordenador con Windows macOS o Linux, Node.js instalado y unos minutos para seguir los pasos.
Estructura mínima del proyecto: crea una carpeta node-project y dentro una carpeta public. En public añade index.html y style.css. index.html contendrá el HTML de tu página principal y style.css los estilos básicos. Mantén la estructura simple para probar el servidor estático.
Qué hace main.js: crea un servidor HTTP que delega en una función estática. Esa función recibe la petición y la respuesta y la ruta de la carpeta public. El servidor escucha en el puerto 3000 y responde con el contenido de los archivos solicitados o con un 404 si no existe el recurso.
Qué hace static.js: lee la lista de archivos de la carpeta public con fs.readdirSync, determina si la URL solicitada es la raíz y en ese caso sirve index.html, o si coincide con el nombre de algún archivo disponible lo devuelve con el tipo de contenido adecuado según la extensión usando path.extname. Para enviar la respuesta usa streams con fs.createReadStream y pipe para eficiencia. Si no encuentra el recurso responde con un 404 y un mensaje sencillo.
Resumen del algoritmo: 1 comprobar si req.url es barra y servir index.html 2 si no buscar un archivo que coincida con la ruta solicitada 3 determinar content type por extensión y devolver el stream con status 200 4 en caso contrario devolver 404. Este enfoque es ideal para aprender conceptos de HTTP y streams en Node.js y para páginas estáticas muy simples.
Limitaciones y recomendaciones: este servidor es educativo y no está optimizado para producción. No gestiona rutas complejas seguridad cabeceras de cache compresión ni manejo avanzado de errores. Para proyectos reales y para mejorar rendimiento y seguridad utiliza frameworks y servidores especializados o soluciones cloud. En Q2BSTUDIO desarrollamos soluciones de software a medida y aplicaciones a medida adaptadas a tus necesidades, y podemos ayudarte a migrar prototipos a arquitecturas robustas y seguras. Si buscas una solución completa consulta nuestro servicio de Desarrollo de aplicaciones y software a medida.
Servicios complementarios: además de desarrollo a medida ofrecemos servicios cloud AWS y Azure para desplegar y escalar tus aplicaciones de forma segura y eficiente. Podemos ayudarte con despliegues en S3 y CloudFront balanceo de carga optimización de instancias y arquitecturas serverless. Conoce nuestros servicios cloud AWS y Azure para integrar hosting seguro y rendimiento a producción.
Valor añadido Q2BSTUDIO: somos una empresa especializada en software a medida inteligencia artificial ciberseguridad servicios cloud servicios de inteligencia de negocio y automatización de procesos. Ofrecemos soluciones de inteligencia artificial para empresas agentes IA integración con Power BI y servicios de pentesting para proteger tus activos digitales. Palabras clave relevantes para posicionamiento: aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws azure servicios inteligencia de negocio ia para empresas agentes IA power bi.
Conclusión: montar un servidor de archivos estáticos en Node.js puro es sencillo y educativo pero no sustituye soluciones optimizadas para producción. Aprende los conceptos con este ejercicio y, cuando la aplicación crezca, confía en un equipo experto como Q2BSTUDIO para diseñar una arquitectura segura escalable y optimizada acorde a tus objetivos.