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

94
Visualizações
Http PUT elimina los datos que no han sido modificados

Estoy tratando de editar una base de datos JSON de turnos. Estoy escribiendo en Javascript usando reaccionar. Esta es mi comprensión de la sintaxis PUT:

 const editShift = async (changed, id) => { const res = await fetch(`http://localhost:5000/shifts/${id}`, { method: 'PUT', headers: { 'Content-type': 'application/json' }, body: JSON.stringify(changed) }) const data = await res.json() setShifts([...shifts, data]) }

datos.json:

 { "shifts": [ { "title": "test", "startDate": "2018-06-25T07:30:00.000Z", "endDate": "2018-06-25T08:00:00.000Z", "allDay": false, "id": 1 }, { "title": "test2", "startDate": "2018-06-28T07:30:00.000Z", "endDate": "2018-06-28T08:00:00.000Z", "allDay": false, "id": 2 } ] }

El resultado es que el nuevo turno mantendrá solo los campos que se han modificado y eliminará el resto. ¿Alguna idea de por qué?

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

La solicitud PUT debería funcionar así.

Una solicitud PUT debe PONER los datos en el lugar del registro anterior. Le gustaría usar una solicitud PATCH solo para parchear datos en el registro anterior.

Aparte de eso, depende de su punto final /shifts sobre cómo se maneja esto realmente.

about 4 years ago · Juan Pablo Isaza Relatório

0

Para obtener turnos anteriores, debe usar una devolución de llamada dentro de setShifts como:

 setShifts(prevShifts => ([...prevShifts, data]))
about 4 years ago · Juan Pablo Isaza Relatório

0

Para una pregunta como esta, sería útil si publicara ejemplos de datos antes y después

  • base de datos vacia
  • solicitud n.º 1, la carga útil es igual a X
  • solicitud n.º 2, la carga útil es igual a Y

Además, saber qué está haciendo su controlador de servidor ayudaría a determinar qué está pasando. Tengo la sensación de que lo que está pasando es algo como esto.

 // API handler (req) => { const dbData = getDBData(); dbData.shifts = req.shifts; // overwrite old with new }

Cuando lo que necesitas es algo como

 (req) => { const dbData = getDBData(); req.shifts.forEach((newShiftData) => { const shiftId = newShiftData.id; if (dbData[shiftId]) { dbData[shiftId] = { ...dbData[shiftId], ...newShiftData }; // merge old with new } }); // - check if data changed // - update DB }
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