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

509
Vistas
Error: ENOENT: no existe tal archivo o directorio, abrir al intentar acceder a un directorio con fs

No estoy bien informado en nodejs o express, tengo una API ejecutándose en http://localhost:3000 y uno de los puntos finales llama a una función que usa el sistema de archivos para leer el archivo de forma sincrónica. Cuando realizo una solicitud de publicación en cartero, dice en la consola que no puede leer una ruta que no existe (lo cual, según tengo entendido).

Código relevante:

índice.js

 app.post('/write',(req,res)=> { var body = req.body; console.log('endpoint reached'); console.log(body); logic.append(body.key,body.path); res.send('Writting to state was successful'); });

stateLogic.js (esto ocurre en la primera inicialización de trieRoot)

 async append(key,path) { var trieRoot = Buffer.from(programData.volatile.modularVariables.readSync(programData.persistent.paths.srcRoot,programData.volatile.modularVariables.encoding.utf8),'hex'); console.log(trieRoot); var db = programData.persistent.states.singularity; var trie = new merkle_patricia_tree_1.SecureTrie(db,trieRoot); var data = programData.volatile.modularVariables.readSync(path,programData.volatile.modularVariables.encoding.utf8); var format = programData.volatile.modularVariables.getFormat(path); var name = programData.volatile.modularVariables.getName(path); var inData = JSON.stringify({name,format,data}); console.log(`key: ${key} value: ${inData}`); await trie.put(Buffer.from(key),Buffer.from(inData)); var root = await trie.root; programData.volatile.modularVariables.write(programData.persistent.paths.srcRoot,root.toString('hex'),programData.volatile.modularVariables.writeCB); var retGet = await trie.get(Buffer.from(key)); console.log('Get returned:'+retGet.toString()); console.log(`From Stack: ${root.toString('hex')} From File: ${this.malleableVar}`); return; };

Función readSync utilizada:

 readSync: (file,encoding)=>{return fs.readFileSync(file,{encoding:encoding,flag:'r'})},

Valor de srcRoot utilizado:

 srcRoot: './storage/root.txt'

Error de la consola:

 (node:18808) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, open './storage/root.txt'

Caminos: ruta stateLogic.js desde index.js y ruta root.txt desde stateLogic.js donde se llama

Preguntas:

¿Por qué dice que el camino no existe cuando existe? ¿Y qué es lo que estoy haciendo mal? Gracias por tu tiempo.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Tienes que usar absolute path en lugar de relative path

Modifique su index.js con el siguiente código:

 const path = require('path') // <-- import path module to use absolute path. app.post('/write',(req,res)=> { var body = req.body; const absPath = path.join(__dirname, body.path); // <-- absolute path console.log("Absolute Path: ", absPath); logic.append(body.key, absPath); res.send('Writting to state was successful'); });

Nota: Si aún enfrenta el mismo error, verifique el valor body.path .

about 4 years ago · Juan Pablo Isaza Denunciar

0

podemos usar el módulo de ruta para proporcionar una ruta absoluta para el directorio

 folder |-server.js |-cert.pem

Dentro del archivo server.js

 const const path = require('path') const certpath = path.join(__dirname,'chain.pem'); // folder\chain.pem
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