Oi Davi, tudo bem?
Pelo que entendi, você está com dúvidas sobre como garantir a padronização do objeto recebido para atualização em uma função chamada modificaLivro()
no contexto de uma API com Express, certo?
No código apresentado, é utilizado o operador de deconstrução de objeto para criar a nova lista de livros atualizada. Porém, você está preocupado com a possibilidade do usuário inserir um novo campo não esperado, como por exemplo, "dataPublicação".
Para garantir a padronização do objeto recebido, você pode utilizar uma abordagem que verifique se os campos recebidos estão de acordo com os campos esperados. Uma forma de fazer isso é utilizando um objeto com os campos permitidos e verificando se todos os campos recebidos estão presentes nesse objeto.
Por exemplo, supondo que os campos esperados sejam "nome" e "autor", você pode fazer algo assim:
const camposPermitidos = ["nome", "autor"];
const camposRecebidos = Object.keys(modificacoes);
const camposInvalidos = camposRecebidos.filter(campo => !camposPermitidos.includes(campo));
if (camposInvalidos.length > 0) {
// Aqui você pode retornar um erro informando que foram recebidos campos inválidos
console.log(`Foram recebidos campos inválidos: ${camposInvalidos.join(", ")}`);
} else {
// Aqui você pode prosseguir com a lógica de atualização do objeto
console.log("Campos válidos, prosseguir com a atualização");
}
Dessa forma, você consegue verificar se existem campos inválidos no objeto recebido e tomar a ação adequada.
Espero que isso possa te ajudar a garantir a padronização do objeto recebido para atualização.
Um abraço e bons estudos.