我曾尝试使用 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);
});
});
基本上,我希望只有在从数据库中获取所有用户时才执行回调。
最佳答案
好吧,如果你真的想返回一个从 _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()
在一个数组中返回所有匹配的文档,因此您最后截取的代码将该数组发送到客户端。
https://stackoverflow.com/questions/14103615/