1
resposta

[Dúvida] Problema na rota PUT da minha API

Olá, pessoal! Estou com um problema na minha API. Estou tentando implementar uma rota PUT para atualizar um livro, mas estou recebendo o erro "TypeError: Cannot read properties of undefined (reading 'id')".

Já verifiquei a URL da rota PUT, o código da rota PUT, adicionei console.log para verificar o ID e a função buscaLivro, mas o problema persiste.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Quando faço uma requisição GET usando a rota /livros/:id, tudo funciona perfeitamente. O console.log na função buscaLivro mostra que o ID está sendo recebido corretamente.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Notei que o erro estava na ordem que eu estava declarando o (req, res) no call back

1 resposta

Olá Gabriel! Tudo bem?

Pelo que você descreveu e pelas imagens do seu código, parece que o problema está na ordem dos parâmetros na sua callback function da rota PUT. No Express, a ordem correta dos parâmetros é (req, res) e não (res, req).

Aqui está o trecho corrigido da sua rota PUT:

app.put("/livros/:id", (req, res) => {
    console.log("ID recebido:", req.params.id);
    const index = buscaLivro(req.params.id);
    console.log("Índice encontrado:", index);
    console.log("Array livros:", livros);
    livros[index].titulo = req.body.titulo;
    res.status(200).json(livros);
});

Mas como você já bem comentou isso no fim do seu post me leva a entender que resolveu o problema em questão, caso não tenha resolvido estarei à disposição para ajudar, então peço que compartilhe mais informações se for o caso.

Bons estudos!