使用NodeJS服务器的Backbone Model和Collection url设计

时间:2015-03-05 20:28:03

标签: node.js rest backbone.js

我是Backbone,NodeJS和Web开发的新手,在我的NodeJS服务器上正在设计我的Backbone Collection和Model GET请求和路由时遇到了困难。

起初我只使用了模型并指定了完美运行的urlRoot。将模型添加到集合后,它使用了集合' url参数,一旦我意识到发生了什么就很好。

说我有模特" Book"和一个集合"图书馆"定义如下:

app.Book = Backbone.Model.extend({
   defaults: {
       title: 'No title',
       author: 'Unknown'
   }
});

app.Library = Backbone.Collection.extend({
    model: app.Book,
    url: '/books'
});

现在,如果我对模型发出GET请求,则url将为'/books/:id,其中包含在我的节点js服务器上指定的路由,并且我将返回具有指定ID的书。

我的问题

我不知道有关集合GET请求的良好做法和设计。如果我想要获取特定作者的书籍集合,我的URL将看起来像/books/:author_id,但这将与我的节点js服务器上的模型GET请求的路径相同。 / p>

如何区分节点服务器上的Model GET请求和Collection GET请求?我不想使用快速黑客,但想要正确设计它。

通过'过滤'什么是最佳做法?带有GET请求的参数?

1 个答案:

答案 0 :(得分:0)

当我们需要像这样的多个过滤器时,我们会做这样的事情。

/books/:id

/books/byAuthor/:authorId

/books/bySearchTerm/:searchTerm

虽然在我们的例子中我们使用Angular和Repos来获取我们的数据,但是无论你在客户端的结构是什么,url模式都能正常工作。