1
resposta

Observação

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 ?

1 resposta

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.