Почему Callback не работает с методом Мангуста findOne? - PullRequest
0 голосов
/ 10 июня 2018

Использование Expressjs и mongoose в приложении узла.Я пытаюсь реализовать аутентификацию passportjs. Когда я вызываю новый LocalStrategy и передаю имя пользователя и функцию обратного вызова, чтобы получить имя пользователя, если оно существует, функция обратного вызова не выполняется. Чтобы убедиться, что напечатанное мной консольное сообщение является обратным вызовом, но даже сообщение не отображается,Почему это происходит и как я могу решить эту проблему?

Это маршрутизатор (index.js)

router.post('/login', (req, res, next) => {
  console.log("Login POst called")
  passport.authenticate('local', {
    successRedirect: '/',
    failureRedirect: '/login',
    failureFlash: 'true'
  })(req, res, next);
}); 

passport.use(new LocalStrategy(
  (username, password, done)=>{
    console.log("Local Strategy called")
    User.getUserByUsername(username, (err, user)=>{
      console.log("this message should display in callback"); // this message is not displaying
      if(err) throw err;
      if(!user){
        return done(null, false, {message: "No user found"});
    }

    User.comparePassword(password, user.password, (err, isMatch)=>{
      if(err) throw err;
      if(isMatch){
         return done(null, user);
      }
      else{
        return done(null, false, {message: "Wrong Password"});
      }
    });
  });
  }
));

это модель (User.js)

module.exports.getUserByUsername = (username, callback)=>{
    console.log("GetUsername called")
    const query = { username: username }
    console.log(query);
    User.findOne(query).exec(callback);
}

module.exports.getUserById = (id, callback)=>{
    console.log("GetId called")
    User.findId(id).exec(callback);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...