Объект: нулевой прототип не позволяет получить значение

Я получаю эту ошибку при попытке сравнить пароли

UnhandledPromiseRejectionWarning: Error: data and hash arguments required

дело в том, что user.password возвращает undefined, но когда я делаю console.info(user), он возвращает модель

Так

ModelBase {
  attributes:
   [Object: null prototype] {
     username: 'billy',
     id: 4,
     password:
      '$2b$12$oIIn*******AnNkr/Pt89S****W3Vi2o8DYBgnEy9t9gcje',
     email: '[email protected]',
     created_at: 2019-05-28T20:00:37.164Z,
     updated_at: 2019-05-28T20:00:37.164Z },

Так что я не понимаю, почему я получаю неопределенность при выполнении user.password

паспорт.js

 .......
    passport.use('login', 
        new Local(
        {
            usernameField:'username',
            passwordField:'password',
            session:false
        },
        (username, password, done, req) => {
            try{
                User.forge({username: username}).fetch()
                .then(user => {
                    if (user === null){
                        return done(null, false, {message: 'Username doesn\'t exist'})
                    }
                    else{

                        console.info(user);  // logs out user model along with password info 

                       // not getting user.password from user model.
                      bcrypt.compare(password, user.password)
                        .then(response => {
                            if (response !== true){
                                console.info('passwords do not match');
                                return done(null, false, {message:'passwords do not match'} )
                            }
                            console.info('user found & authenticated');
                            return done(null, user); 
                        })                
                    }
                })
            }catch(err){
                done(err);
            }
        }
    ))
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
462
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте сравнить с user.attributes.password.

Другие вопросы по теме