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

69
Visualizações
mi método put duplica el código en lugar de actualizar

Estoy tratando de almacenar datos de usuario en mongodb usando el método put. Mi intención es actualizar esos datos si existen o crear nuevos. pero mi método crea nuevos datos en lugar de actualizar ... este código es del lado del cliente (aquí primero cargué mi imagen en imgbb y luego la guardo en el servidor) .. .

const imagen = datos.imagen[0];

 const formData = new FormData(); formData.append('image',image) const API_KEY = '4957c3c668ded462db1fb1002c4535e6'; const url = `https://api.imgbb.com/1/upload?key=${API_KEY}`; fetch(url,{ method : 'POST', body : formData, }) .then(res => res.json()) .then(result => { if(result.success){ console.log('image',result.data.url) const img = result.data.url; const dataOfuser = { user : user?.displayName, email : user?.email, phone: data.phone, city: data.city, education: data.education, img: img } console.log(dataOfuser) fetch(`http://localhost:5000/user/:${user.email}`,{ method:"PUT", headers:{ 'Content-Type': 'application/json' }, body : JSON.stringify(dataOfuser) }) .then(res => res.json()) .then(data => { if(data.acknowledged){ toast.success('Profile Updated') } }) } }) };

estos son los codigos de mongodb

app.put('/usuario/:email',async(req,res)=>{

 const email = req.params.email; const user = req.body; const filter = { email: email }; const options = { upsert: true }; const updateDoc = { $set: user, }; const result = await userCollection . updateOne ( filter , updateDoc , options); res.send(result); });
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Podría intentar enviar correo electrónico y usuario como cuerpo y

 app.put("/user/email", async (req, res) => { const { dataOfuser } = req.body; //this finds all const { email, user, phone, city, etc} = dataOfuser; //this extracts the values, but probably better to send each values by themselves

También puede enviar el usuario y el correo electrónico, etc. por sí solos, en lugar de como un solo objeto:

 body: JSON.stringify({ user, email, phone, city, education, img })

También puede intentar agregar llaves alrededor de dataOfuser en el cuerpo: JSON.stringify({ dataOfuser })

 const res = await userCollection .updateOne( { email: email} *find the user by his email* { $set: {email: email, phone: phone, city: city etc.}}) *set email to email from body* })

También debe tener un valor predeterminado en las entradas como su valor actual, para que los campos no se sobrescriban como nulos o en blanco.

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