2016-10-17 11 views
0

私はパスポートローカル戦略を持っているがMongoDBの中でユーザーを照会しよう:NodeJSマングースパスポート局所戦略クエリのMongoDBがエラーを与え、

passport.use(new LocalStrategy(
    function(username, password, done){ 
     console.log("username and password is >>>>>", username, password); 
     var findOne = Q.nbind(User.findOne, User); 
     findOne({"username": username}) 
     .then(function(user){ 
     console.log("inside findone user>>>>>", err, user); 

     if (!user) { 
      return done(null, false, {messge: 'This user is not registered.'}); 
     } 

     if (!user.comparePasswords(password)){ 
      return done(null, false, {message: 'This password is not correct'}); 
     } 

     return done(null, user); 
     }) 
     .fail(function(err){ 
     console.log("failed at here"); 
     return done(null, false, {message: "Server have difficulty"}); 
     }) 
    } 
)); 

「ここで失敗しました」エラーへのアクセスのMongoDBがありますを意味し、印刷されます。しかし、私はサインアップ機能に非常によく似た機能を書いており、すべて正常に動作します:

​​

私はサインアップでユーザーを作成しました。同じユーザーとサインアップしようとすると、409が表示されます。ただし、そのユーザーとサインインしようとすると、パスポートのローカル戦略によってmongodbにアクセスする際のエラーが報告されます。何かご意見は?あなたがレポを見てみることを歓迎している :https://github.com/7seven7lst/chatterApp パスポートの設定はで見つけることができます:https://github.com/7seven7lst/chatterApp/blob/master/lib/routes.js とサインアップはで見つけることができます: https://github.com/7seven7lst/chatterApp/blob/master/lib/controllers/user.js

答えて

1
.then(function(user){ 
    console.log("inside findone user>>>>>", err, user); 

エラーはそのerr ISNので、スローされます定義されていません。

あなたはfail機能することを、実際のエラーを記録した場合:あなたが表示されます

.fail(function(err){ 
    console.log("failed at here", err); 
    return done(null, false, {message: "Server have difficulty"}); 
}) 

ReferenceError: err is not defined 
    at /Users/dting/chatterApp/lib/routes.js:16:49 
関連する問題