Я пытаюсь получить этот процесс проверки пользователя для метода вставки, вот часть функции, которая, кажется, не работает:
exports.insert = (req, res) => {
let validEmail = false;
userModel.findByEmail(req.body.email)
.then((result)=>{
if(result) {
console.log("ok"+result)
}
else{
console.log("nok"+result);
validEmail = true;
//returns true when a not used email is posted
}
});
let validPassword = validatePassword(req.body.password);
console.log(validEmail, validPassword); //always returns false for validEmail
//If statement to verify if both validEmail and validPassword are "true"
Проверка пароля работает должным образом (довольно прямо сейчас), но что не работает, так это проверка электронной почты.
Так как я использую электронную почту в качестве идентификатора для аутентификации, мне нужно, чтобы она была уникальной, поэтому я использую findByEmail, как показано ниже:
exports.findByEmail = (email) => {
return User.findOne({"email":email})
.then((result) => {
if(result) {
result = result.toJSON();
delete result.__v;
delete result.password;
return result;
}else{
return null;
}
})
};
Это работает, но похоже на
validEmail = true
происходит после оператора if. Когда я console.log, если оператор else, он влияет на true на validEmail, но впоследствии не включается в оператор if.
Что-то не так?
edit: вот функция validatePassword:
function validatePassword(password){
return password.length>6;
}