ENOENT es un código de error POSIX que significa 'Error NO ENTry' (sin entrada). En Node.js se lanza cuando una operación del sistema de archivos (leer, escribir, eliminar, renombrar) apunta a una ruta que no existe. Es el equivalente en Node.js de FileNotFoundError de Python.
Por qué ocurre
- •La ruta del archivo es relativa y el directorio de trabajo del proceso no es el que el desarrollador esperaba.
- •El archivo nunca fue creado, fue eliminado, o fue colocado en un directorio diferente.
- •Un error tipográfico en el nombre del archivo o la ruta, incluyendo mayúsculas/minúsculas incorrectas en sistemas de archivos sensibles a ellas.
- •Un paso de compilación que debería generar el archivo falló silenciosamente, dejando la ruta vacía.
Ejemplos
Código que causa el error
const fs = require("fs");
const content = fs.readFileSync("./config.json", "utf8");
console.log(content);Error en la terminal
Error: ENOENT: no such file or directory, open './config.json'
at Object.openSync (node:fs:601:18)
at Object.readFileSync (node:fs:469:35)Cómo solucionarlo
Usa path.join(__dirname, 'nombrearchivo') para construir rutas relativas al módulo actual en lugar del directorio de trabajo del proceso. Verifica que el archivo exista con fs.existsSync() antes de leerlo. Cuando el archivo faltante es generado por una herramienta de compilación, asegúrate de que el paso de compilación se ejecutó correctamente antes de que el proceso Node.js arranque.
Código corregido
const fs = require("fs");
const path = require("path");
const configPath = path.join(__dirname, "config.json");
if (!fs.existsSync(configPath)) {
console.error("config.json not found at", configPath);
process.exit(1);
}
const content = fs.readFileSync(configPath, "utf8");
console.log(content);Errores relacionados
¿Listo para practicar tu inglés en el trabajo?
Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.
Prueba Lingua-e gratis