Lingua-e
JavaScript

¿Qué significa ENOENT: no such file or directory?

← Errores

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

JavaScript

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