Vous devez probablement utiliser whereRaw()
knex('usr_info')
.whereRaw('login = ? AND password = PASSWORD(?)', [login, password]);
Soit dit en passant, vous ne devriez pas utiliser la fonction PASSWORD() de MySQL pour votre propre authentification d'application. Cette fonction a été supprimée dans MySQL 8.0.11. Dans MySQL 5.7, c'est obsolète, et il y a une note :
https://dev.mysql.com/doc /refman/5.7/en/encryption-functions.html#function_password
De plus, ce n'est pas une bonne idée de transmettre le mot de passe en clair à votre requête, car il peut être enregistré en clair dans le journal des requêtes.
Au lieu de cela, je vous recommande de rechercher uniquement login
dans votre requête, le résultat inclura le mot de passe haché stocké dans votre base de données. Vous pouvez hacher le mot de passe dans le code de votre application et le comparer au hachage renvoyé par votre requête.