如何在MEAN堆栈上使用subdoc实现CRUD?

时间:2015-11-02 07:49:15

标签: angularjs node.js serialization crud meanjs

在我的第一个MEAN.JS项目中,我有以下(简化的)子网状图模式安排,表示彼此分配的组的成员(对于Secret Santa网站):

var MemberSchema = new Schema({
  displayName: { type: String },
  has: {
    type: Schema.ObjectId,
    ref: 'Member'
  }
});
mongoose.model('Member', MemberSchema);

var GroupSchema = new Schema({
  displayName: { type: String },
  members: [MemberSchema]
});
mongoose.model('Group', GroupSchema);

我应该如何最好地构建我的服务器端createupdate控制器以及他们希望接收的POST机构? Articles示例使用简洁的var article = new Article(req.body);及其隐含的POST正文结构,但这显然会失败,因为成员数组将被编码为字符串,此外,不会处理Member -> Member引用。那么我应该如何编码我的数据,以便于与Angular绑定客户端进行简单的序列化和集成,特别是考虑到使用带有其他子目录的subocs?

在我看来,我可以构建POST身体,如:

displayName: 'My group'
members[0]: { _id: '81ds72', displayName: 'Member 1', has: '0cc9sk' }
members[1]: { _id: '0cc9sk', displayName: 'Member 2', has: '81ds72' }

或:

displayName: 'My group'
members[0]._id: '81ds72'
members[0].displayName: 'Member 1'
members[0].has: '0cc9sk'
members[1]._id: '0cc9sk'
members[1].displayName: 'Member 2'
members[1].has: '81ds72'

或者我认为就像JSON一样:

displayName: 'My group'
members: '[{"_id": "81ds72", "displayName": "Member 1", "has": "0cc9sk"}, {"_id": "0cc9sk", "displayName": "Member 2", "has": "81ds72"}]'

或全部作为JSON:

data: '{"displayName": "My group", "members": [{"_id": "81ds72", "displayName": "Member 1", "has": "0cc9sk"}, {"_id": "0cc9sk", "displayName": "Member 2", "has": "81ds72"}]}'
坦率地说,所有这些看起来都很可怕,所以我想知道我是否只是以错误的方式接近这一点。我想继续使用subdocs,因为它们最能代表我想要存储的数据,但它似乎是MEAN.JS的CRUD方孔的圆形挂钩。

0 个答案:

没有答案