चूंकि आपको अपने डेटाबेस में सादा पासवर्ड नहीं सहेजना है, इसलिए डेटाबेस में पासवर्ड को मान्य करने का कोई मतलब नहीं है। क्योंकि आपको पहले पासवर्ड हैश करना चाहिए और फिर उसे सेव करना चाहिए। हैशेड पासवर्ड एक जटिल स्ट्रिंग होगा जो डेटाबेस में सहेजे जाने के लिए सत्यापन को पारित करने की सबसे अधिक संभावना है।
तो आपको क्लाइंट साइड में पासवर्ड को मान्य करना होगा। इसके लिए आप जॉय एनपीएम पैकेज का उपयोग कर सकते हैं।
https://www.npmjs.com/package/@hapi/joi
आप इसे इस तरह कार्यान्वित कर सकते हैं।
userModel.js // मॉडल फोल्डर में होना चाहिए
const Joi = require('@hapi/joi');
const mongoose = require("mongoose");
//you defined your schema above, it should be **lowercase**
//here is the model, model should start capital letter
const User=mongoose.model("User",userSchema)
function validateUser(user) {
const schema = Joi.object().keys({
email: Joi.string()
.min(8)
.max(50)
.required()
.email(),
password: Joi.string()
.min(6)
.required()
.max(20)
.regex(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{8,1024}$/) //special/number/capital
});
return Joi.validate(user, schema);
}
module.exports.User = User;
module.exports.validate = validateUser;
मैं दिखाऊंगा कि पोस्ट राउटर के अंदर इस फ़ंक्शन का उपयोग कैसे करें।
userRoute.js
//import model and validate func
const { User, validate } = require("/models/user");
router.post("/", async (req, res) => {
//validating the request here
const { error } = validate(req.body);
if (error) res.status(400).send(error.details[0].message);
//i used this code to show you how to use validate function
//i am not sure what is your project about
});