Anda mungkin perlu menggunakan whereRaw()
knex('usr_info')
.whereRaw('login = ? AND password = PASSWORD(?)', [login, password]);
Omong-omong, Anda tidak boleh menggunakan fungsi PASSWORD() MySQL untuk autentikasi aplikasi Anda sendiri. Fungsi ini telah dihapus di MySQL 8.0.11. Di MySQL 5.7, sudah usang, dan ada catatan:
https://dev.mysql.com/doc /refman/5.7/en/encryption-functions.html#function_password
Selain itu, bukanlah ide yang baik untuk meneruskan kata sandi plaintext ke kueri Anda, karena kata sandi itu mungkin dicatat dalam teks biasa di log kueri.
Sebagai gantinya, saya sarankan Anda hanya mencari login
dalam kueri Anda, maka hasilnya akan menyertakan kata sandi hash yang disimpan di database Anda. Anda dapat meng-hash kata sandi di kode aplikasi Anda dan membandingkannya dengan hash yang dikembalikan oleh kueri Anda.