与Express.js沟通骨干的最佳方式

我正在开发Node.js&Express&Backbone&MongoDB应用程序。 我有一个通过url获取的项目列表。 在那个列表中,我想把一个select按价格sorting项目。 我不知道这是做这种sorting的最佳方式,也许我必须把链接在select与确定的url,像[url]&sorting= 1,并拿取它像我拿到所有项目,或者我可以不使用链接从另外一个优化的方式从骨干获取这个集合?

感谢和问候

我对此的看法如下。 除非必须 ,否则请避免在服务器上进行sorting,而是在客户端上进行sorting。 这种方式反应更快。 如果您有20件商品,并且想要按名称(升序或降序),库存数量(升序或降序)或价格(相同的东西)进行分类,则要更好地在客户端上完成。

当你必须的时候 ,是你有1,000件物品的时候。 您只需在呼叫中加载1,000个项目,然后对其进行sorting。 您可能一次检索大约30-50,取决于每个项目的大小。 所以你需要有办法告诉服务器,“给我下面的30个项目”,或者更准确地说,“给我30个项目从X点开始”。

有很多方法可以做到,即使在REST中也是如此。 一般来说,最好的方式是通过查询parameter passing起始点和计数,就像你一样。 所以,如果你正在获取小部件,并且你的API是

GET /widget 

那么你会有几个查询字段: field (你正在sorting哪个字段), orderascdes ), count (一个整数)和start (哪一点开始,loggingID或索引)。

这给出了以下内容:

 GET /widget?field=name&count=30&start=100&order=asc // get widgets sorted by field in ascending order, starting with the 100th widget and going for 30 widgets GET /widget?field=price&count=20&start=225&order=desc // get widgets sorted by price from highest to lowest (descending order), starting with the 100th widget and going for 20 widgets 

有这种变化,例如,而不是你可能startendstartcount 。 我看到了sort order 。 但是,这个想法是一样的:这四个领域给你所有的服务器需要知道检索一组定义的项目。