允许单个Backbone模型的多个路由

时间:2013-05-17 20:29:27

标签: node.js backbone.js express

我对Backbone相当新,并且正在为网站创建一些基本API。但是,我遇到了一个问题,我还没有找到解决办法。

在我的前端,我有一个名为Item的Backbone Model,它有一个urlRoot:“/ item”。现在这个urlRoot被Backbone用来向服务器发送不同的HTTP请求吗?因此,如果我的主干模型使用Item.fetch(),它将发送一个GET请求,而Item.save()可能会发送一个POST请求。

我的后端有一堆监听器函数来处理不同的情况,如“/ createItem”,“/ updateItem”,“deleteItem”等。可以使用提供的基本urlRoot处理所有这些吗?或者我必须具体说明明确发出什么路线?

2 个答案:

答案 0 :(得分:0)

如果您想遵循默认的方式,您的后端不应为每个CRUD操作使用不同的名称。它应该使用你使用模型的rootUrl + / id指定的url,并且应该为该单个URL处理HTTP POST,GET,PUT或DELETE(除了POST URL没有附加/ id)。 / p>

请参阅:http://backbonejs.org/#Sync

答案 1 :(得分:0)

由于您使用的是非常规的休息端点集,因此您需要为模型提供自定义同步方法:

sync : function(method, model, options) {
    if (method === 'read') {
        this.baseUrl = '/item';
        return Backbone.sync.apply(this, arguments);
    } ...
}