Nunca use concatenação de strings para consulta, você já tem um mecanismo chamado declaração preparada, assinatura como
.query('SELECT * FROM `books` WHERE `author` = ?', ['David'])
Ele irá higienizar a entrada para você e impedir parcialmente os ataques de injeção de sql, também sempre fará a validação dos valores de entrada. E se você não quiser usar ORM como
typeorm
, Sequelize
, você pode usar knex.js
que só pode criar strings de consulta e gerenciar totalmente a interação do banco de dados