使用Sails Js和async填充嵌套集合

时间:2015-05-21 02:03:25

标签: javascript node.js sails.js

我试图使用sails js查询深层关联。在我的例子中,我在房间和用户之间有一对多的关联,并且在用户和图片之间也有一对多的关联。我担心的是,这是将图片分配给用户的正确方法,以及如何将每个图片集合映射到相应的用户。感谢。

// RoomController

show: function(req, res) {

    async.auto({

      room: function(cb) {
        var slug = req.param('slug');

        Room
          .findOneBySlug(slug)
          .populate('users', { where: { is_active: true, is_online: true } })
          .populate('messages', { limit: 30, sort: 'createdAt DESC' })
              .exec(cb)
      },

      pictures: ['room', function(cb, results) {
        if (!results.room) return res.badRequest('User not found.');

        Picture
          .find({user: _.pluck(results.room.users, 'id')})
          .where({'is_primary': true})
          .exec(cb);
      }],

      map: ['pictures', function(cb, results) {
        var room = results.room.toJSON();

        room.users = room.users.map(function(user) {
          user.pictures = results.pictures;
          return user;
        });
        return cb(null, room);
      }]

  },

     function finish(error, results) {
       if (error) return res.serverError(error);

       console.log(results.map)
     }

  );

}

0 个答案:

没有答案