2017-10-22 1 views
0

Ich finde ein einziges Dokument mit findOne() Mein Dokument hat userid als einer der Schlüssel in meinem Benutzermodell.Mongoose findOne() gibt ein leeres Objekt zurück

Beispiel

{ 
    userid: 1, 
    name: 'John' 
} 

Jetzt kann dieses Dokument als Objekt Ich bin empfangen, wenn ich folgend

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

jedoch tun, wenn ich den gleichen Wert von userid einreichen versuchen dynamisch dann das data obj gibt null zurück und immer noch if(e) Anweisung wird nicht ausgeführt.

Beispiel

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

I Konsole angemeldet den Wert von req.body.userid und überprüft, dass es 1 ist, wenn ich es dynamisch übergeben.

Was mache ich falsch? Ist der Wert req.body.userid nicht korrekt an userid Schlüssel übergeben?

Antwort

2

Wenn Sie versuchen, Filterwerte Variablen verwenden Sie es richtig unter Verwendung eines Filters Objekt der Code

prüfen einstellen müssen passieren unter

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

Nun, wenn (e) ausgeführt und der Fehler sagt, ich habe ein Cast-Fehler. "name": "CastError", Ich habe auch sichergestellt, dass der Wert von req.body.userid ganzzahlig ist. – Aditya

+0

console.log der Wert von 'req.body.userid',' typeof req.body.userid' und 'parseInt (req.body.userid)' um sehen zu können, was von der Anfrage und dem Typ von 'kommt userid' ... weil der Fehler bedeutet, dass das 'parseInt'-Funktionsergebnis' NAN' ist, was bedeutet, dass 'req.body.userid' kein Zahlenstring oder eine Zahl ist –

+0

Der ausgeführte Typ der Benutzerkennung im Dokument ist die Nummer und der typeOf req.body.userid ist ebenfalls eine Zahl. – Aditya

Verwandte Themen