Backbone 模型和集合 url 使用 NodeJS 服务器设计

Backbone Model and Collection url design with a NodeJS server

我是 Backbone、NodeJS 和 Web 开发的新手,并且正在努力正确设计我的 Backbone 集合和模型 GET NodeJS 服务器上的请求和路由。

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

假设我有模型 "Book" 和一个集合 "Library" 定义如下:

图书

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 服务器上指定了一个路由,我会 return指定id的书。

我的问题

我不知道关于集合的 GET 请求的良好做法和设计是什么。比如说,如果我想获取某个作者的藏书,我的 url 看起来会像 /books/:author_id,但这会与我的节点上的模型 GET 请求走相同的路线js 服务器。

如何区分节点服务器上的模型 GET 请求和集合 GET 请求?我不想使用快速破解,但想正确设计它。

什么是通过集合 GET 请求传递 'filter' 参数的最佳实践?

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

/books/:id

/books/byAuthor/:authorId

/books/bySearchTerm/:searchTerm

虽然在我们的例子中我们使用 Angular 和 Repos 来获取我们的数据,但是 url 模式无论您的客户端结构如何都有效。