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

295
Vistas
Cómo actualizar archivos/imágenes con patch api y paquete multer

Como puede ver mis códigos, creé un modelo de usuario e importé aquí (dentro del controlador) y también importé un middleware de carga desde mi otra carpeta de directorio donde se escriben códigos para cargar archivos/imágenes usando el paquete multer y todo está bien y carga perfectamente el archivo usando post api.

lo que estoy haciendo aquí -> creé un modelo de esquema de usuario y un middleware para cargar archivos usando el paquete multer y el controlador para la publicación de operaciones crudas, obtener, parchear y eliminar, publicar api está bien, funciona bien pero para el parche

lo que quiero hacer -> Quiero actualizar profile_pic a través de (req.params.id) cuando uso patch api en postman para actualizar, de modo que se cargue en el directorio de carga, pero al mismo tiempo recibí un error llamado (Cast to ObjectId falló por valor) en el cartero y parece que no actualizo mis datos

 const express = require('express'); const User = require('../models/user.model'); const upload = require('../middlewares/file_upload') const router = express.Router(); router.post('/',upload.single("profilePic"),async (req, res) => { try { const users = await User.create({ first_name:req.body.first_name, last_name:req.body.last_name, profile_pic:req.file.path, }) return res.status(201).send({users}) } catch(e) { return res.status(500).json({message:e.message,status:"Failed"}) } }) `Here below the problem is, Can anyone help me out to this problem` router.patch('/:id',upload,async (req, res) => { try { const user = await User.findByIdAndUpdate({ first_name:req.params.id, last_name:req.params.id, profile_pic:req.file.path, },{req.body}, { new:true}) return res.status(201).send({user}) } catch(e) { return res.status(500).json({message:e.message,status:"Failed"}) } }) module.exports = router;
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Prueba este código:

 router.patch('/:id',upload.single("profilePic"),async (req, res) => { try { const user = await User.findByIdAndUpdate( mongoose.Types.ObjectId(req.params.id), { profile_pic: req.file.path } ); return res.status(201).send({user}) } catch(e) { return res.status(500).json({message:e.message,status:"Failed"}) } })

El problema es que está encontrando al usuario por nombre y apellido, que no son identificaciones. Necesita encontrar al usuario por la identificación del objeto.

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