簡體   English   中英

未處理的拒絕-護照登錄應用程序節點js

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM