notei que as validaçoes com if nas function valida apenas para letras (ex:batata mais se colocar um numero ex:55 ele valida com 200/OK) e isso msm ?
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!
notei que as validaçoes com if nas function valida apenas para letras (ex:batata mais se colocar um numero ex:55 ele valida com 200/OK) e isso msm ?
Sim, isso mesmo. Ao perceber que não era uma verificação totalmente eficaz mudei o meu if.
function patchLivro(req, res) {
try {
const id = req.params.id;
if(id && Number(id)) {
const livro = getLivroPorId(id);
if(livro) {
const body = req.body;
modificaLivro(body, id)
res.send("item modificado com sucesso")
} else res.status(404).send("Livro não encontrado")
} else res.status(422).send("Id inválido")
} catch (error) {
res.status(500).send(error.message)
}
}
Aqui ele faz todas as verificações, mas não é interessante ter tantos if's no controler.
function getLivro(req, res) {
const id = req?.params?.id;
if (!id && typeof(id) !== 'number') {
res.status(422).send("Id inválido")
return
}
const livro = getLivroPorId(id, res);
res.send(livro)
}
Pode tentar utilizar essa lógica.