Quando forem tratar os dados na busca faça dessa forma:
buscaId(id){
return new Promise((resolve, reject) => {
this._db.query(
`
SELECT *
FROM livro
WHERE id = ?
`,
[id],
(erro, resultado) => {
if(erro)
return reject('Não encontrado oh!');
var livro = JSON.parse(JSON.stringify(resultado));
console.log(livro[0]);
return resolve(livro[0]);
});
});
}
Pois se não fizer esse tratamento vc não recebe somente o Arraw vc recebe algo parecido como [ RowDataPacket { id: 1, nome: 'Fundamentos do JS' } ] e lá no HTML quando vc chama ele n entende oq é isso