Ich bin kein Knex.js-Benutzer, aber wenn ich mir die Dokumentation anschaue, scheint es, dass Knex die Verwendung der JavaScript-Objektsyntax zum Definieren von Prädikaten ist, wie es die Parametrisierung erreicht.
Da Sie jedoch integrierte Funktionen verwenden, müssen Sie whereRaw
verwenden .
Ein Blick in die Dokumentation ( http://knexjs.org/#Builder-whereRaw ) und ( http://knexjs.org/#Raw-Bindings ) Ich denke, Sie möchten dies tun:
.whereRaw('question LIKE :term OR note LIKE :term OR user_name LIKE :term', { term: '%' + term + '%' ] } )
Knex hat kein orWhereRaw
, daher sollten Sie die Langversion verwenden, wenn Sie die Prädikate logisch trennen möchten:
term = '%' + term + '%';
.orWhere( knex.raw( 'question LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'note LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'user_name LIKE ?', [ term ] ) )
Beachten Sie ?
ist für Positionsparameter und :term
ist für benannte Parameter.