Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

518
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda