在我的应用中,我有两个型号Person
和Room
。我还有两个控制器,PersonController
和RoomController
。我没有添加自定义路由,并且我没有覆盖任何样板控制器操作。
当我POST
,例如,/room/5/person
时,会创建人员记录并按预期与room/5
相关联 - 很棒。但是,在对此POST
的响应中返回的JSON包含Room和与该房间相关联的所有人员,并在数组中侧载。我希望Sails只返回创建的人(或者,最多只返回新创建的人和房间,如果blueprints.populate: true
)。
我需要进行哪些更改才能使Sails仅返回由POST
创建的Person?
这是我目前的代码:
/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'
}
};
答案 0 :(得分:1)
这是设计上的;你正在使用“添加人到房间”的蓝图,所以假设你关心房间的状态。如果您只是想要退回的人,请使用“创建人”蓝图,并在有效负载中提供房间ID:
发布/人
{
name: "John Doe",
room: 5
}
这仍然会发送有关被添加到5号房间的人的pubsub通知。