2015-11-02 2 views
0

Я пытаюсь реализовать простой логин, но есть небольшая проблема. bcrypt возвращает response, поэтому, когда я пытаюсь выполнить res.send("stuff"), он возвращает ошибку, так как считает, что я пытаюсь получить доступ к свойству объекта res, а не к функции ответа express.js. (поправьте меня если я ошибаюсь).Ответ Express.js не определен Ошибка

ReferenceError: response is not defined at authController.js:79:21

exports.loginModalPost = function (req, res) { 
    // post 
    var email = req.body.email; 
    var password = req.body.password; 

    // email & password validation. 
    user.where('email', email).fetch().then(function (data) { 
     if (data) { 
      data = data.toJSON(); 
      bcrypt.compare(password, data.password_hash, function (err, res) { 
       if(res === true) { 
        res.send("login is valid"); 
       } else { 
        // return err, but don't say that password is wrong to the end user. 
        res.send("password is wrong"); 
       } 
      }); 
     } else { 
      // email is wrong, no need to check password. 
      // return err, but don't say that email is wrong. 
      res.send("email is wrong"); 
     } 
    }); 
}; 

ответ

1

Второй аргумент res в compare обратного вызова метода, в конфликт с объектом res ответа Express, вы не можете объявить же имя переменной в одной области.

просто обновить ваш код, как показано ниже:

bcrypt.compare(password, data.password_hash, function (err, result) { 
       if(result === true) { 
        res.send("login is valid"); 
       } else { 
        // return err, but don't say that password is wrong to the end user. 
        res.send("password is wrong"); 
       } 
      }); 
Смежные вопросы