Ich habe versucht, mit Mongoose die Liste aller Benutzer wie folgt zu senden:
server.get('/usersList', function(req, res) {
var users = {};
User.find({}, function (err, user) {
users[user._id] = user;
});
res.send(users);
});
Natürlich res.send(users);
wird senden {}
, was ich nicht will. Gibt es eine find
Alternative mit etwas anderer Semantik, bei der ich Folgendes tun könnte?
server.get('/usersList', function(req, res) {
User.find({}, function (err, users) {
res.send(users);
});
});
Im Wesentlichen möchte ich, dass der Rückruf nur ausgeführt wird, wenn alle Benutzer aus der Datenbank abgerufen wurden.
javascript
node.js
mongodb
mongoose
Zufälliges Blau
quelle
quelle
Antworten:
Wenn Sie wirklich ein Mapping von
_id
bis zurückgeben möchtenuser
, können Sie immer Folgendes tun:find()
Gibt alle übereinstimmenden Dokumente in einem Array zurück, sodass Ihr zuletzt abgeschnittener Code dieses Array an den Client sendet.quelle
Wenn Sie die Daten an eine Ansicht senden möchten, geben Sie Folgendes ein.
In Ihrer Ansicht können Sie die Daten mithilfe der variablen Benutzer durchlaufen
quelle
Dies ist nur eine Verbesserung der Antwort von @soulcheck und eine Korrektur des Tippfehlers in forEach (fehlende schließende Klammer).
Prost!
quelle
/userList
Route zugreifen , erhalten Sie ein JSON-Objekt mit dem Format:{"123451": {...user 123451}, "123452": {...user 123452} }
Es gab eine sehr einfache Möglichkeit, Ihre Daten aufzulisten:
quelle
Gleiches kann mit asynchroner Warte- und Pfeilfunktion erfolgen
quelle
Für den Fall, dass wir
list all documents in Mongoose collection
nachupdate
oder wollendelete
Wir können die Funktion folgendermaßen bearbeiten:
Dies wird
list all documents
auf Erfolg statt nurshowing success message
quelle
Damit die Funktion darauf wartet, dass die Liste abgerufen wird.
quelle
Meine Lösung
quelle