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

464
Vistas
Cómo cargar una imagen con json usando Nodejs

Estoy tratando de cargar una imagen con un cuerpo de datos json. He visto cómo hacer la solicitud en cartero, pero en mi terminal, obtengo lo siguiente al registrar en la consola el req.body

[Object: null prototype] { '': '"product": "pokemon"' } al iniciar sesión req.body.product devuelve como indefinido

La imagen se cargó correctamente y se creó un nuevo producto, pero sin datos json. Al enviar la solicitud solo con el cuerpo y sin imagen, también está funcionando. ¿Cómo puedo hacer que funcionen juntos?

Aquí está mi código:

 export const addNewProduct = async (req, res, next) => { const userId = req.params.userId; const user = await User.findById(userId); if (!user) { return next(createError(404, "User with id"+ ${userId} +"not found")); } try { let result; if (req.file !== undefined && req.file.path !== undefined) { result = await cloudinary.v2.uploader.upload(req.file.path, { folder: `capstone/products/${userId}`, }); } console.log(req.body); const newProductData = { // product: req.body.product, // amount: req.body?.amount || "", // untis: req.body?.units || "", // price: req.body?.price || "", ...req.body, businessId: userId, image: result?.url || req.body?.image || "https://via.placeholder.com/300/09f/fff.png", cloudinary_id: result?.public_id || "", }; const newProduct = new Product(newProductData); const createdProduct = await newProduct.save(); res.status(200).send(createdProduct); } catch (error) { if (error.name === "ValidationError") { next(createError(400, error)); } else { next(createError(500, error)); } } };

Quiero usar el mismo punto final que estoy creando un nuevo "producto", y quiero la opción de cargar una imagen con sus detalles cuando se crea. Luego, la URL de Cloudinary se almacena en el producto.

Ejemplo de json:

{ "producto": "juguete", "precio": "1,99", "cantidad": "1", "estado": "alto"} solo el producto es una cadena obligatoria en el modelo. * haciendo una verificación de middleware para ver si es único.

en cartero usé auto, application/json, multipart/form-data, etc. También agregué en ocasiones separadas "data" o "json" en el par de claves

Cartero en contenido automático tyoe

ejemplo de cartero con tipo de contenido agregado

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

0

He logrado resolverlo con lo siguiente: solución POSTMAN

Y en el front-end, tenía que agregar todos los objetos, no solo la imagen cuando se enviaba una imagen. por lo tanto, todo bajo formdata. y una declaración if sin el archivo de imagen adjunto, enviándolo como JSON normal. Gracias por todos los aportes, aprendí mucho en el camino.

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