[英]Unhandled Rejection - passport login app node js
我正在创建nodejs
登录应用程序,并使用passport
js进行身份验证。 我使用本地mysql数据库,并使用sequelize
作为ORM库。
在我的用户模型中,我创建了按用户名获取用户的方法。
module.exports.findUserByUsername = function(username, callback){
User.findOne({ where: {username: username} }).then(function(user) {
var userObj = user.get({plain:true});
callback(userObj);
})
};
在路由器文件中
passport.use('login', new LocalStrategy(
function (username, password, done) {
User.findUserByUsername(username, function (err, user) {
if(err) {
throw err;
}
console.log(user);
})
}
));
我收到错误Unhandled rejection (<{object_values...>, no stack trace)
我该如何解决这个问题?
您需要像这样更改回调调用:
callback(null, userObj);
在路由器文件中,遇到错误时会throw
该错误。 在异步调用环境中引发异常不是一个好习惯。 无论如何,您调用传递一个期望第一个参数的回调的findUserByUsername
都是错误的。
在findUserByUsername
,将用户对象返回错误的位置。 因此,您在路由器文件中的逻辑认为这是一个错误。
为避免此类异常,您无需抛出异常,请在回调函数中将其返回。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.