Jag är inte en Knex.js-användare, men om jag tittar på dokumenten verkar det som om Knex användning av JavaScript-objektsyntax för att definiera predikat är hur den uppnår parameterisering.
Men eftersom du använder inbyggda funktioner måste du använda whereRaw
.
Titta på dokumenten ( http://knexjs.org/#Builder-whereRaw ) och ( http://knexjs.org/#Raw-Bindings ) Jag tror att du vill göra det här:
.whereRaw('question LIKE :term OR note LIKE :term OR user_name LIKE :term', { term: '%' + term + '%' ] } )
Knex har ingen orWhereRaw
, så du bör använda långhandsversionen om du logiskt vill separera predikaten:
term = '%' + term + '%';
.orWhere( knex.raw( 'question LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'note LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'user_name LIKE ?', [ term ] ) )
Notera ?
är för positionsparametrar och :term
är för namngivna parametrar.