Элементарное async/await
Не могу разобраться с промисами и установкой async/await кто знает, дайте подсказку.
- Контроллер
exports.login = async (req, res) =>{
console.log(req.body.email + " "+ req.body.password)
let obg = null;
(async ()=> {
let user = new Users.Users(req.body.email, req.body.password)
let promise = new Promise(function(resolve, reject) {
obg = user.isValidPasswordUser()
console.log("в промисе "+obg)
console.log(obg)
resolve(obg)
});
await promise.then(
result => {
console.log("В контроллере")
console.log(obg)
console.log(result)
return res.json(result)
},
error => console.log(' Ошибка ' + error)
)
})()
}
- Класс в котором делается запрос к БД
isValidPasswordUser(){
console.log('Сервер '+this.email + " " + this.password)
let r = this.password
let isValidPassword = (userpass, password) => { // проверка правильности паролей
return bCrypt.compareSync(password, userpass);
}
user.findOne({
where: {
email: this.email
}
}).then(function(user) {
//console.log(user)
if ((!user) || (!isValidPassword(user.password, r))) { // Пользователя под таким еmail не найден или пароли не совпадают
console.log("Жопа")
return {status: false, message: 'Имя пользователя или пароль введены не верно!'}
}
console.log("На сервере все ок.")
let on = {status: true, message: 'Успешный вход', token: "Все ок"}
console.log(on)
return on
}).catch(reason => {
console.log("Ошибка логирования " + reason)
return reason
});
}
}
module.exports.Users = Users
- Вот так получаю на клиенте
login: async function () {
this.texterr=''
const dataLogin = this.userValid()
if(dataLogin.status) {
console.log("Объект проверки " + dataLogin.status)
this.texterr = dataLogin.msg
Axios.post('/auth/login', {
email: this.email,
password: this.password
}).then((response) => {
console.log(" gvjgyjgyj ")
console.log(response.data)
//return response.data;
if (response.data.status){
console.log("Удачный вход "+response.data.token)
this.$store.dispatch('auth/token',response.data.token)
}else {
console.log("Ошибка при входе "+response.data.message)
this.texterr = response.data.message
}
})
}else {
this.texterr=dataLogin.msg
}
},
Перепробовал много комбинаций, - я не понимаю :(