Eu não sou um usuário do Knex.js, mas olhando para os documentos, parece que o uso da sintaxe de objeto JavaScript do Knex para definir predicados é como ele alcança a parametrização.
No entanto, como você está usando funções internas, você precisa usar
whereRaw
. Olhando para os documentos ( http://knexjs.org/#Builder-whereRaw ) e ( http://knexjs.org/#Raw-Bindings ) Acho que você quer fazer isso:
.whereRaw('question LIKE :term OR note LIKE :term OR user_name LIKE :term', { term: '%' + term + '%' ] } )
Knex não tem um
orWhereRaw
, então você deve usar a versão longa se quiser separar logicamente os predicados:term = '%' + term + '%';
.orWhere( knex.raw( 'question LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'note LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'user_name LIKE ?', [ term ] ) )
Nota
?
é para parâmetros posicionais e :term
é para parâmetros nomeados.