我目前正在使用Node.js,Express.js,Backbone.js和MongoDB开发应用程序。我正面临有关如何处理模型需要使用多于标准ID参数来获取(GET)服务器的情况的设计问题。使用Backbone.js实现多参数GET获取Node.js/Express.js REST API
让我们考虑下面这个简单的例子:
Book = Backbone.Model.extend({
urlRoot : "/io/books",
defaults : {
author : 'No Name'
}
});
var myBook = new Book();
myBook.set('id','87');
myBook.fetch({success: ioSuccess, error: ioFail});
在服务器端,获取呼叫URL/IO /书籍/ 87,其中 '87' 成为request.params枚举的一部分。
现在,如果ID不足以从数据库中检索单个书籍模型,该怎么办?如果从数据库检索书籍模型需要使用ID和发布者ID,该怎么办?
第一个解决办法是这样的URL将变为/ IO /书籍延长PARAMS /:ID /:的publisherId
但有人可以告诉我,主干采用这种设计如何适应?我已经试过以下没有成功:
var myBook = new Book();
myBook.set('id','87');
myBook.set('publisherid','34');
myBook.fetch({success: ioSuccess, error: ioFail});
此外,为了克服我的问题,我已经添加(成功)我额外的钥匙插入取功能的数据一部分变成了:
myBook.fetch({'data': {'publisherid':'34'}, {success: ioSuccess, error: ioFail});
但是我发现这个解决方案不够优雅,因为在服务器端,我最终得到了两个enumarators(request.params和request.query),我必须合并以获得我需要的所有密钥。
感谢, EBL
极大的发挥。作品般的魅力。 –