Тъй като не трябва да запазвате обикновена парола във вашата база данни, няма смисъл да потвърждавате паролата в базата данни. Защото първо трябва да хеширате паролата и след това да я запазите. хешираната парола ще бъде сложен низ, който най-вероятно ще премине проверката, за да бъде запазен в базата данни.
Така че трябва да потвърдите паролата от страна на клиента. за това можете да използвате пакета joi npm.
https://www.npmjs.com/package/@hapi/joi
ето как можете да го приложите.
userModel.js //трябва да е в папката models
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
});