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

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

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