После сравнения паролей с помощью bcrypt.compare не получается вернуть пользователя
После сравнения паролей с помощью bcrypt.compare не получается вернуть пользователя
Как правильно сделать чтобы после сравнения паролей происходил вывод пользователя. Вот код
async getOneUser (req, res) {
try{
const { name, email, pass } = req.body
db.query('SELECT * FROM users WHERE name=$1::text AND email=$2::text AND pass=$3::text', [name, email, pass] , (err, row) =>{
if(err){
console.log('Error executing query', err.stack);
}
console.log(pass, req.body.pass) //здесь в консоль выводит оба значения
const hash = bcrypt.compare(pass, req.body.pass, function(err, res){
if(err){
console.log(err)
}
});
//res.json(row.rows[0])
if(hash){// а здесь выводит else
return res.status(200).json(row.rows[0])
}else{
return res.status(401).json({"message": "Нет"})
//return res.status(200).json(hash.rows)
}
});
Исправленный запрос
bcrypt.compare(pass, req.body.pass, function (err, data){
if(err){
console.log(err)
}
console.log(data) //вот здесь возвращает все время false
});
res.json(row.rows[0]) //а вот здесь в Postman приходит 1
Как быть?