次のように、Mongoose を使用してすべてのユーザーのリストを送信しようとしました。
server.get('/usersList', function(req, res) {
var users = {};
User.find({}, function (err, user) {
users[user._id] = user;
});
res.send(users);
});
もちろん、res.send(users);
は を送信します{}
が、これは私が望んでいることではありません。find
少し異なるセマンティクスで、次の操作を実行できる代替手段はありますか?
server.get('/usersList', function(req, res) {
User.find({}, function (err, users) {
res.send(users);
});
});
基本的に、すべてのユーザーがデータベースから取得された場合にのみコールバックが実行されるようにしたいと思います。
ベストアンサー1
_id
まあ、本当に からへのマッピングを返したい場合はuser
、次のようにすることができます。
server.get('/usersList', function(req, res) {
User.find({}, function(err, users) {
var userMap = {};
users.forEach(function(user) {
userMap[user._id] = user;
});
res.send(userMap);
});
});
find()
一致するすべてのドキュメントを配列で返すので、最後に切り取ったコードはその配列をクライアントに送信します。