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

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

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