在处理从Backbone到Express / Mongoose的模型和集合时加载相关实体

时间:2012-10-19 16:27:42

标签: node.js mongodb backbone.js express mongoose

我有一个UserService对象,它基本上是Service,带有其他配置参数,并附加到User。在我的视图中,我想呈现这些UserServices的列表,但模型是这样形成的:

UserService = Backbone.Model.extend({
    defaults: { 
        id: 0, 
        user_id: 0, // This needs to reference the user object somehow 
        service_id: 0, // This needs to reference the service object somehow
        length: 216000, 
        price: 1000
    }
});

如果我将此模型绑定到视图,渲染的内容最终将成为service_id而不是我需要渲染的参数:service.name

我的问题是:

服务中的UserService模型应该存储什么?完整的服务对象?猫鼬ID?其他一些身份证? (请指明一个建议)

我应该从哪里获取此信息service.name /何时应该提取Service对象以获取该信息?能够在渲染时在视图中执行service.name会很高兴...

是否有链接功能 - 在加载模型时,需要加载相关的模型?

总的来说,我只需要了解相关模型在Backbone / Express / Mongoose中的工作原理。

感谢任何帮助!

更新:在做了一些阅读后,我有几种不同的方法可以看到:

  1. constructor / initializer内根据服务器返回的引用ID将Service对象加载到UserService对象中。
  2. 我对那个问题的问题变成了......参考ID是什么?我在哪里放置新检索的对象,可能代替ID?

    1. 使用toJSON方法返回一个非常有用的UserService版本,它返回Service对象,并返回一个带有服务名称的对象:

      {     ID: ???,     service_name:“这是从toJSON方法中的服务对象检索的”,     length:“1小时”,//从toJSON方法中转换     价格:10.00 //在toJSON方法中从美分转换为美元 }

    2. 或者可能是一个组合?想法?

1 个答案:

答案 0 :(得分:0)

Parse模型很好地处理加载相关实体,还有library called Backbone Relational可以帮助解决此问题。

否则,我最好的建议是存储对象的ID,并在获取第一个实体成功后获取相关实体。

任何需要代码示例的人只需在这里发表评论,我就会看到我能想到的内容。