Faltou mostrar no curso como faz para atualizar o autor do livro referenciando. Tentei e não consegui.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.