Olá, fiz algumas alterações relacionadas a inserção de dados de busca inválidos como sugerido no final do curso!! Nas buscas por ID alterei a verificação - if (id && getLivroPorId(id)) e no método post incluí a obrigatoriedade de se passar um ID.
function getLivro(req, res) {
try {
const id = req.params.id
if(id && getLivroPorId(id)) {
const livro = getLivroPorId(id)
res.send(livro)
}else{
res.status(422).send("Id inválido.")
}
} catch (error) {
res.status(500).send(error.message)
}
}
function postLivro(req, res) {
try{
const livroNovo = req.body
if(req.body.nome && req.body.id) {
insereLivro(livroNovo)
res.status(201).send("Livro inserido com sucesso.")
}else{
res.status(422).send("Os campos nome e id são obrigatórios.")
}
}catch(error) {
res.status(500).send(message.error)
}
}
Também retirei as variáveis "livros" que estavam nas funções do services e criei uma variável let livros fora das funções para evitar a repetição de código.
let livros = JSON.parse(fs.readFileSync("livros.json"))