おそらく、 whereRaw() を使用する必要があります。
knex('usr_info')
.whereRaw('login = ? AND password = PASSWORD(?)', [login, password]);
ちなみに、MySQLのPASSWORD()関数を独自のアプリ認証に使用しないでください。この関数はMySQL8.0.11で削除されました。 MySQL 5.7では、非推奨であり、注意事項があります:
https://dev.mysql.com/doc /refman/5.7/en/encryption-functions.html#function_password
また、クエリログにプレーンテキストで記録される可能性があるため、プレーンテキストのパスワードをクエリに渡すことはお勧めできません。
代わりに、login
のみを検索することをお勧めします クエリでは、結果にはデータベースに保存されているハッシュ化されたパスワードが含まれます。アプリコードでパスワードをハッシュして、クエリによって返されたハッシュと比較できます。