आपको शायद whereRaw() का इस्तेमाल करना होगा
knex('usr_info')
.whereRaw('login = ? AND password = PASSWORD(?)', [login, password]);
वैसे, आपको अपने स्वयं के ऐप प्रमाणीकरण के लिए MySQL के PASSWORD() फ़ंक्शन का उपयोग नहीं करना चाहिए। यह फ़ंक्शन MySQL 8.0.11 में हटा दिया गया था। MySQL 5.7 में, यह पदावनत है, और एक नोट है:
https://dev.mysql.com/doc /refman/5.7/hi/encryption-functions.html#function_password
इसके अलावा, अपनी क्वेरी के लिए प्लेनटेक्स्ट पासवर्ड पास करना अच्छा विचार नहीं है, क्योंकि यह क्वेरी लॉग में प्लेनटेक्स्ट में लॉग इन हो सकता है।
इसके बजाय, मैं आपको केवल login
. के लिए खोज करने की सलाह देता हूं आपकी क्वेरी में, तो परिणाम में आपके डेटाबेस में संग्रहीत हैशेड पासवर्ड शामिल होगा। आप अपने ऐप कोड में पासवर्ड हैश कर सकते हैं और अपनी क्वेरी द्वारा लौटाए गए हैश से इसकी तुलना कर सकते हैं।