Não consegui responder o tópico do Samuel, já estava fechado... Mas se mais alguém estiver tendo esse problema de não aparecer a mensagem de erro NaoEncontrado
ao digitar um fornecedor ou produto inválido, é só adicionar a linha await Tabela.pegarPorId(id, fornecedor)
antes de chamar o método atualizar()
na rota de produtos. Fica assim:
// api > rotas > fornecedores > produtos > index.js
roteador.put("/:id", async (req, res, proximo) => {
try {
const id = req.params.id
const fornecedor = req.fornecedor.id
const dados = Object.assign(
{},
req.body,
{
id: id,
fornecedor: fornecedor
}
)
const produto = new Produto(dados)
await Tabela.pegarPorId(id, fornecedor)
await produto.atualizar()
res.set("X-Powered-By", "Gatito")
res.set("ETag", produto.versao)
const timestamp = (new Date(produto.dataAtualizacao)).getTime()
res.set("Last-Modified", timestamp)
res.status(204)
res.end()
} catch(erro) {
proximo(erro)
}
})
Dessa forma a verificação é feita antes da atualização.