Faltou mostrar no curso como faz para atualizar o autor do livro referenciando. Tentei e não consegui.
Faltou mostrar no curso como faz para atualizar o autor do livro referenciando. Tentei e não consegui.
Olá, Guilherme. Tudo bem?
Vou tentar te ajudar com isso. Para atualizar o autor de um livro, você precisará fazer uma requisição de atualização (PUT ou PATCH) para a API, onde você especificará o ID do livro que deseja atualizar e os novos dados do autor.
Aqui está um exemplo de como você pode fazer isso:
Defina a Rota: Primeiro, você precisa definir uma rota para atualizar o autor em seu arquivo de rotas, algo como:
routes.put("/livros/:id/autor", LivroController.atualizarAutorDoLivro);
Crie o Método no Controller: No LivroController
, você pode criar um método para lidar com essa atualização:
static async atualizarAutorDoLivro(req, res) {
const id = req.params.id;
const novoAutor = req.body.autor;
try {
const livroAtualizado = await Livro.findByIdAndUpdate(id, { autor: novoAutor }, { new: true });
if (livroAtualizado) {
res.status(200).json(livroAtualizado);
} else {
res.status(404).json({ message: "Livro não encontrado" });
}
} catch (erro) {
res.status(500).json({ message: `${erro.message} - falha ao atualizar o autor` });
}
}
Teste a Atualização: Você pode testar essa atualização usando uma ferramenta como o Postman. Faça uma requisição PUT para http://localhost:3000/livros/{id}/autor
, substituindo {id}
pelo ID do livro que deseja atualizar. No corpo da requisição, envie o novo autor:
{
"autor": "Novo Nome do Autor"
}
Espero que isso ajude a resolver sua dúvida. Qualquer coisa manda o código. Bons estudos.