2017-10-22 16 views
0

私は単一の文書を使用していますfindOne() 私の文書はuseridを私のユーザモデル内の鍵の1つとして持っています。Mongoose findOne()は空のオブジェクトを返します

{ 
    userid: 1, 
    name: 'John' 
} 

今私はuseridの同じ値を提出しようとする場合、私は、私はしかし

users.findOne({userid: 1}, function(e, data){ 
    if(e){ 
     return (res.send('Failed')) 
    }else{ 
     return (res.send(data)) 
    } 
}); 

次の手順を実行したときにオブジェクトとして、この文書を受信することができています動的にdata objがnullを返し、まだif(e)ステートメントが実行されません。

users.findOne({userid: req.body.userid}, function(e, data){ 
    if(e){ 
     return (res.send('Failed')) 
    }else{ 
     return (res.send(data)) 
    } 
}); 

Iコンソールはreq.body.useridの値を記録し、私はそれを動的に通過するとき、それは1であることを確認しました。

私は間違っていますか? req.body.useridの値がuseridキーに正しく渡されていませんか?

答えて

2

あなたは(e)の実行と、エラーが私が持っていると言うならば今

var key = "userId"; //example 
var value = req.body.userId; 
var filter = {}; 
filter[key] = value; 

    user.model.findOne(filter, function(e, data){ 
     if(e){ 
      return (res.send('Failed')) 
     }else{ 
      return (res.send(data)) 
     } 
    }); 
+0

以下のコードをチェックし、フィルタオブジェクトに

を使用してそれを正しく設定する必要がある変数を使用してフィルタ値を渡そうとしている場合キャストエラー。 "name": "CastError"また、私はreq.body.useridの値が整数であることを確認しました。 – Aditya

+0

console.logリクエストから何が来ているのかを見るために 'req.body.userid'、' typeof req.body.userid'と 'parseInt(req.body.userid)'の値を ' userid' ...エラーは 'parseInt'関数の結果が' NAN'であることを意味します。これは、 'req.body.userid'が数値文字列でも数字でもないことを意味します。 –

+0

文書内のユーザーIDのexptectedタイプはnumber typeOf req.body.useridも数字です。 – Aditya

関連する問題