No soy un usuario de Knex.js, pero mirando los documentos parece que el uso de la sintaxis de objetos JavaScript de Knex para definir predicados es la forma en que logra la parametrización.
Sin embargo, como está usando funciones integradas, necesita usar whereRaw
.
Mirando los documentos ( http://knexjs.org/#Builder-whereRaw ) y ( http://knexjs.org/#Raw-Bindings ) Creo que quieres hacer esto:
.whereRaw('question LIKE :term OR note LIKE :term OR user_name LIKE :term', { term: '%' + term + '%' ] } )
Knex no tiene un orWhereRaw
, por lo que debe usar la versión manual si desea separar lógicamente los predicados:
term = '%' + term + '%';
.orWhere( knex.raw( 'question LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'note LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'user_name LIKE ?', [ term ] ) )
Nota ?
es para parámetros posicionales, y :term
es para parámetros con nombre.