Node.js seqelizeembeddedhasMany ID
我正在试验一个使用ember-data的Ember应用程序和一个使用Sequelize.js从MySQL提供数据的node.js后端。
我的问题:如果我有一个评论模型关联到一个Post模型通过hasMany预期的JSON由ember-data看起来像
{ "post": { "comment_ids": [1, 2, 3] } }
什么是最好的方式来查询/生成这个JSON没有昂贵的循环等使用sequelize?
注释模型有一个带有post_id的外键。
我去实施它像:
// include comments Post.all({ where: "..", include: [Comment] }).success(function(posts) { // collect IDs _.each(posts, function(element) { element["comments"] = _.pluck(element.comments, 'id'); }); });
我build议把钱交给客户。 您可以设置自定义序列化客户端,将数据重新格式化为ED的预期格式。 此外,ED正在以这种格式期待它:
{ "post": { "comments": [1, 2, 3] } } App.Post = DS.Model.extend({ comments = DS.hasMany('comment') });
或者您select在回复中包含评论
{ "post": { "id": 1 "title": "Rails is omakase", "comments": ["1", "2"], "_links": { "user": "/people/dhh" }, }, "comments": [{ "id": "1", "body": "Rails is unagi" }, { "id": "2", "body": "Omakase O_o" }] }
你可以在这里阅读更多关于它的信息: https : //github.com/emberjs/data/blob/master/TRANSITION.md
在某些时候,某人将不得不循环(或迭代),遍历结果集来构build响应(或序列化响应客户端)并不罕见。