猫鼬:获取完整的用户列表

2022-08-30 04:58:38

我尝试使用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

好吧,如果你真的想从 返回一个映射 to ,你总是可以做到:_iduser

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()返回数组中所有匹配的文档,因此上次截取的代码会将该数组发送到客户端。


答案 2

如果要将数据发送到视图,请输入以下内容。

    server.get('/usersList', function(req, res) {
        User.find({}, function(err, users) {
           res.render('/usersList', {users: users});
        });
    });

在视图中,您可以使用变量用户遍历数据