Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

363
Vistas
Error de Javascript: ENOENT: no existe tal archivo o directorio

Estoy tratando de crear un directorio, luego crear un archivo en este directorio, luego estoy tratando de eliminar el directorio. Si estoy ejecutando las funciones una por una, el código funciona, pero cuando las ejecuto juntas, aparece este error:

[Error: ENOENT: no existe tal archivo o directorio, abra 'C:\Users\Andrei\Desktop\tw\test\test.txt'] { errno: -4058, código: 'ENOENT', syscall: 'open', ruta : 'C:\Usuarios\Andrei\Escritorio\tw\prueba\prueba.txt' }

Además, si estoy ejecutando solo las primeras 2 funciones, todo funciona bien. ¿Qué pasa con mi código?

 const rimraf = require("rimraf"); const mkdirp = require("mkdirp"); const fs = require("fs"); const err1 = new Error("File Error!"); const err2 = new Error("Directory deleting Error!"); function createDirectory() { mkdirp("./test"); } function createFile() { fs.writeFile("./test/test.txt", "this is my text", function (err1) { if (err1) throw err1; console.log("Results Received"); }); } function deleteDirectory() { rimraf("./test", function (err2) { if (err2) console.log(err2); console.log("Succesfully deleted a directory"); }); } function main() { createDirectory(); createFile(); deleteDirectory(); } main();
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Esas funciones son asíncronas. Necesitarás usar alguna lógica de Promise para hacer que se encadenen:

 const rimraf = require("rimraf"); const mkdirp = require("mkdirp"); const fs = require("fs"); const err1 = new Error("File Error!"); const err2 = new Error("Directory deleting Error!"); function createDirectory() { return mkdirp("./test"); } function createFile() { return new Promise((resolve) => { fs.writeFile("./test/test.txt", "this is my text", function (err1) { if (err1) throw err1; console.log("Results Received"); resolve(); }); }); } function deleteDirectory() { return new Promise((resolve) => { rimraf("./test", function (err2) { if (err2) console.log(err2); console.log("Succesfully deleted a directory"); resolve(); }); }); } function main() { createDirectory() .then(() => { return createFile(); }) .then() => { return deleteDirectory(); }); } main();
about 4 years ago · Juan Pablo Isaza Denunciar

0

mkdirp , writeFile y rimraf son todos asincrónicos , pero no está esperando que terminen los anteriores para pedirles que comiencen los posteriores.

Sugeriría usar una función async y las versiones habilitadas para promesas ( mkdirp ya está habilitada para promesas, use writeFile de fs/promises , y tiene que haber un contenedor de promesas para rimraf ahora; si no, use util.promisify ). Entonces podrías usar await :

 async function main() { await createDirectory(); await createFile(); await deleteDirectory(); }

donde (por ejemplo) createFile es:

 const {writeFile} = require('fs/promises'); // ... async function createFile() { await writeFile("./test/test.txt", "this is my text"); console.log("Results Received"); }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda