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

304
Vistas
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 Respuestas
Responde la pregunta

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 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