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

106
Visualizações
No se pueden realizar solicitudes PUT desde el lado del cliente al backend de Fastify

Estoy tratando de actualizar la información del lado del cliente con una solicitud PUT a mi servidor Fastify, pero no se envía nada. Tampoco se muestran errores, simplemente no hay cambios.

Las solicitudes POST y GET funcionan bien desde el lado del cliente.

Las solicitudes PUT funcionan en Insomnia/Postman.

Tengo fastify-cors instalado:

 fastify.register(require("fastify-cors"), { origin: "*", methods: "GET,POST,PUT,PATCH,DELETE", });

Solicitud del lado del cliente

 export default function EditUser({ route, navigation }) { const { item } = route.params; const [firstName, setFirstName] = useState(item.name[0].firstName); const editUser = async () => { try { const res = await fetch(`http://<myIPaddr>:5000/api/users/${item._id}`, { method: "PUT", headers: { Accept: "application/json", "Content-Type": "application/json", }, body: firstName, }); console.log(firstName); } catch (error) { console.log(error); } }; return ( <View> <Layout> <Text style={styles.text}>EDIT USER PAGE</Text> <View> <TextInput style={styles.input} onChangeText={(e) => setFirstName(e)} value={firstName} /> <Text style={{ color: "#FFF" }}>{item._id}</Text> <Button title="save changes" onPress={editUser} /> </View> </Layout> </View> ); }

Ruta de fondo

 fastify.put("/:id", async (request, reply) => { try { const { id } = request.params; const user = await User.findByIdAndUpdate(id, request.body); if (!user) { return reply.status(400).send({ error: "couldn't find user" }); } reply.status(200).send({ success: true, data: user }); } catch (error) { reply.status(400).send({ error: "request failed" }); } });
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Verifique los registros de back-end, podría ser que esté usando return reply.send . Quitar la return . De los documentos :

Advertencia:

Cuando se usa el valor de retorno y la respuesta. enviar (valor) al mismo tiempo, el primero que sucede tiene prioridad, el segundo valor se descartará y también se emitirá un registro de advertencia porque intentó enviar una respuesta dos veces.

about 4 years ago · Juan Pablo Isaza Relatório

0

Encontré la solución, no estaba pasando los datos de la manera correcta

 const editUser = async () => { const userEndpoint = `http:<myIPaddr>:5000/api/users`; try { const res = await axios({ url: `${userEndpoint}/${item._id}`, method: "PUT", data: { name: { firstName: firstName, }, }, }); console.log(firstName); } catch (error) { console.log(error); } };
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