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

99
Views
Creó una solicitud POST para una lista de conversación en mongoDB. ¿Cómo evitar que la solicitud POST cree documentos duplicados?

Estoy creando una aplicación que conecta voluntarios con recién llegados usando ReactJS. En la aplicación, he desarrollado un mecanismo de chat que ayudará a los recién llegados a conectarse con los voluntarios y viceversa. Implementé una función que muestra a los voluntarios destacados con su información y un botón que dice 'contacto'. Conecté el botón de contacto para que, cuando se presione, el usuario sea dirigido al chat y se cree un nuevo documento de lista de conversación en MongoDB mediante la solicitud POST.

El problema con el que me encuentro es que la solicitud POST continúa ejecutándose cada vez que hago clic en el botón 'contacto', lo que genera múltiples duplicados del nombre de usuario. Estoy luchando por encontrar una solución al problema. Me gustaría que solo un nombre de usuario se muestre en la página y no tenga un montón de duplicados. Cualquier ayuda es muy apreciada.

El método GET que toma el correo electrónico y el método POST que crea un nuevo documento

 **VolunterCard.jsx** React.useEffect(() => { const getImage = async () => { let response = await fetch(`/image/cass@gmail.com`); let data = await response.json(); console.log(`Data is:`, data); setVolunteer(data); }; getImage(); }, []); const createConversation = async () => { const newConversation = { members: { senderEmail: user.email, recieverEmail: volunteer.email }, }; const data = JSON.stringify(newConversation) await fetch("/conversation", { method: "POST", headers: { "Content-type": "application/json", }, body: data, }) };```
 **Conversation.jsx (Where the user gets rendered)** useEffect(() => { const chatMembers = conversation.members.find( (member) => member !== currentUser.email ); const getUsersFirstName = async () => { try { const response = await axios.get("/name?email=" + chatMembers); setUser(response.data); } catch (err) { console.log(err.message); } }; getUsersFirstName(); }, [currentUser, conversation, isLoading]); if (isLoading) { return <div>isLoading...</div>; } return ( <div style={{cursor: 'pointer'}}> {user.firstName} {user.lastName} - {user.email} </div> ); };``` **converstionModel.js** ```const mongoose = require("mongoose") const conversationSchema = new mongoose.Schema({ members: { type: Array, } }, { timestamps: true}); const conversationModel = mongoose.model("Members", conversationSchema); const createMembers = async (members) => { const newMembers = await conversationModel.create(members); return newMembers };```
about 4 years ago · Santiago Gelvez
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!