Setzen Sie die Variable auf das Ergebnis des Mungos Finden
Ich versuche, so etwas zu tun
function retrieveUser(uname) {
var user = User.find({uname: uname}, function(err, users) {
if(err)
console.log(err);
return null;
else
return users[0];
return user;
Aber dies gibt ein Dokument anstelle einer Benutzer-Objekt. Der parameter Benutzer ist ein array von Benutzerobjekten, die der Abfrage entsprechen, also wie kann ich das speichern eines der Objekte in eine variable, die meine Funktion zurückkehren könnte?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Funktion
User.find()
ist eine asynchrone Funktion, so dass Sie nicht verwenden können, einen Rückgabewert zu erhalten, einen resultierenden Wert. Verwenden Sie stattdessen eine callback:Die Funktion würde dann z.B. so verwendet werden:
War ich auf der Suche nach einer Antwort auf die gleiche Frage stellen.
Hoffentlich MongooseJS veröffentlicht v5.1.4 wie jetzt.
Model.find({property: value}).exec()
gibt ein Versprechen.es aufgelöst wird, um ein Objekt, wenn Sie es in der folgenden Art und Weise:
Grundsätzlich, MongoDB und NodeJS mit asynchronen Funktionen, so haben wir, um es zu synchronen Funktionen dann, nachdem es ordnungsgemäß funktioniert, wie erwartet.
In Beispiel mdl_users ist das mongoose Modell und ich habe ein user-Auflistung(Tabelle) für den Benutzer die Daten in der MongoDB-Datenbank und das speichern von Daten auf "userData" - variable, um es anzuzeigen.In dieser Funktion find ich geteilt haben, alle Dokumente(Zeilen der Tabelle) durch die Funktion aus, wenn Sie wollen einfach alles aufzeichnen, dann nutzen Sie den direkten find () - Funktion folgenden code ein.