После сравнения паролей с помощью 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

Как быть?


Ответы (0 шт):