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

302
Visualizações
fs.readFileSync ocurre antes de archivos cargados de multer, error ENOENT

Estoy desarrollando una plataforma donde los usuarios deberían poder crear un hotel a través de un formulario HTML. Dentro del formulario, hay una opción para cargar varios archivos de imagen.

Estoy usando multer para manejar la carga. Mi procedimiento es el siguiente:

Crear directorio 'imágenes'

  1. Guarde las imágenes cargadas en el directorio 'imágenes'
  2. convertir imágenes en el directorio 'imágenes' a base64
  3. guardar el formato base64 en una matriz
  4. guardar matriz en Hotel MongoDB Schema
  5. eliminar directorio 'imágenes'

La carga y el guardado funcionan perfectamente, pero me sale un error cuando intento cargar el siguiente hotel:

 Error: ENOENT: no such file or directory, open 'C:\ ...'

Las imágenes se almacenan con éxito en el directorio de 'imágenes', pero obviamente, como la aplicación falla, no se hace nada con los archivos, así que tengo que eliminarlos manualmente.

Como esto solo sucede en el segundo intento (al reiniciar la aplicación, funciona de nuevo), asumo que fs.readFileSync se ejecuta antes de que las imágenes terminen de cargarse. No tengo idea ya que multer es parte de mi cadena de enrutadores, la conversión a base64 debería ocurrir DESPUÉS de que todos los archivos se carguen en el servidor.

¿Qué estoy haciendo mal?

Funciones Multer: https://i.stack.imgur.com/Wz167.png Conversión Base64: https://i.stack.imgur.com/oOEmR.png Función de eliminación (ejecutada después de guardar en DB) https://i .stack.imgur.com/PlTvH.png

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Aquí hay un fragmento simple para obtener imágenes como base64. Sin almacenarlos en el disco.

 const express = require('express'); const multer = require('multer'); const storage = multer.memoryStorage(); const upload = multer({ storage }); const app = express(); app.post('/submit', upload.array('images'), (req, res, next) => { // req.files is array of `images` files // I believe it is a `Buffer` object. const base64Images = req.files.map(image => buffer.toString('base64')); // Ready to save into DB; console.log(base64Images); })
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