[英]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.