0

在我的应用程序中,我有两个模型PersonRoom. 我也有两个控制器,PersonControllerRoomController. 我没有添加任何自定义路由,也没有覆盖任何样板控制器操作。

POST例如,当我/room/5/person创建一个人员记录并按预期关联时room/5- 很棒。但是,在对此的响应中返回的 JSONPOST包含 Room 和与该房间关联的所有人员,并以数组的方式侧载。我预计 Sails 只会返回创建的人(或者,最多返回新创建的人和房间,如果blueprints.populate: true)。

我需要进行哪些更改以使 Sails 仅返回由于POST?

这是我当前的代码:

/api/models/Room.js

// Room.js

module.exports = {

    autosubscribe: ['update', 'add:people'],
    attributes: {
        name: 'string',

        // Has-many association
        // A room can have many people
        people: {
            collection: 'person',
            via: 'room'
        }
    }
};

/api/models/Person.js

module.exports = {

    autosubscribe: ['update'],
    attributes: {
        name: 'string',

        // Belongs-to association
        // A person can belong to only one room
        room: {
            model: 'room'
        }
    }
};

/api/controllers/RoomController.js

module.exports = {

};

/api/controllers/PersonController.js

module.exports = {

};

/config/routes.js

module.exports.routes = {

    '/': {
        view: 'homepage'
    }
};
4

1 回答 1

1

这是设计使然;您正在使用“将人员添加到房间”蓝图,因此假设您关心房间的状态。如果您只想返回人员,请使用“创建人员”蓝图,并在有效负载中提供房间 ID:

邮寄/人

{
    name: "John Doe",
    room: 5
}

这仍然会发送关于某人被添加到房间 5 的 pubsub 通知。

于 2014-08-12T05:54:16.010 回答