Nie jestem użytkownikiem Knex.js, ale patrząc na dokumentację wygląda na to, że użycie przez Knex składni obiektów JavaScript do definiowania predykatów jest sposobem, w jaki osiąga się parametryzację.
Jednak ponieważ używasz wbudowanych funkcji, musisz użyć whereRaw .
Przeglądanie dokumentacji ( https://knexjs.org/#Builder-whereRaw ) i ( https://knexjs.org/#Raw-Bindings ) Myślę, że chcesz to zrobić:
.whereRaw('question LIKE :term OR note LIKE :term OR user_name LIKE :term', { term: '%' + term + '%' ] } )
Knex nie ma orWhereRaw , więc powinieneś użyć wersji odręcznej, jeśli chcesz logicznie oddzielić predykaty:
term = '%' + term + '%';
.orWhere( knex.raw( 'question LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'note LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'user_name LIKE ?', [ term ] ) )
Uwaga ? dotyczy parametrów pozycyjnych, a :term dotyczy nazwanych parametrów.