Leer/escribir archivos de forma segura

Trabaja con archivos en Node sin bloquear el event loop, validando rutas y controlando errores de lectura y escritura.

Leer y escribir archivos parece simple, pero hay riesgos de rendimiento y seguridad.

Usa `fs/promises` y valida rutas para evitar bloqueos y accesos indebidos.

Un script robusto debe manejar inexistencia de archivos y permisos denegados.

Meta: construir utilidades de archivos confiables para producción.

  • Prefiere promesas para flujo claro y control de errores.
  • Nunca confíes en rutas construidas desde input externo.
  • Normaliza con `path.resolve`.
  • Restringe operaciones a un directorio permitido.
  • Rechaza rutas relativas sospechosas (`../`).

API moderna de archivos en Node

Prefiere promesas para flujo claro y control de errores.

Validar rutas antes de operar

Nunca confíes en rutas construidas desde input externo.

  • Normaliza con `path.resolve`.
  • Restringe operaciones a un directorio permitido.
  • Rechaza rutas relativas sospechosas (`../`).

Errores frecuentes con `fs`

Debes tratarlos como casos esperados, no excepcionales.

  • `ENOENT`: archivo no existe.
  • `EACCES`: permisos insuficientes.
  • `EISDIR`: intentaste leer directorio como archivo.

Aplicación real

Logs, cach? local y exportación de reportes usan este patr?n.

Si diseñas bien lectura/escritura, evitarás cuellos de botella en tareas programadas y scripts de mantenimiento.

JavaScript
54

Leer/escribir archivos de forma segura

Trabaja con archivos en Node sin bloquear el event loop, validando rutas y controlando errores de lectura y escritura.

Código del tema: fs/promises | readFile | writeFile

📘 Teoría

API moderna de archivos en Node

Prefiere promesas para flujo claro y control de errores.

Validar rutas antes de operar

Nunca confíes en rutas construidas desde input externo.

  • Normaliza con `path.resolve`.
  • Restringe operaciones a un directorio permitido.
  • Rechaza rutas relativas sospechosas (`../`).

Errores frecuentes con `fs`

Debes tratarlos como casos esperados, no excepcionales.

  • `ENOENT`: archivo no existe.
  • `EACCES`: permisos insuficientes.
  • `EISDIR`: intentaste leer directorio como archivo.

Aplicación real

Logs, cach? local y exportación de reportes usan este patr?n.

Si diseñas bien lectura/escritura, evitarás cuellos de botella en tareas programadas y scripts de mantenimiento.

🧪 Aprende probando

Ejemplo Ejemplo guiado: flujo mínimo funcional Construye una versión simple y verifica salidas en consola.
Ejemplo Ejemplo guiado: iterar y registrar estado Patrón útil para depuración incremental.
Ejemplo Demo interactiva: mini laboratorio Interactúa con la UI y observa cambios en preview y consola.

🏁 Retos

Reto Reto 1: transformación controlada Crea una variable `resultado` transformando un valor de entrada y muéstrala en consola.
Reto Reto 2: función reutilizable Encapsula la lógica en una función para reutilizarla.

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros. culTest

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com