Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

506
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!