节点API框架

我有一个用Java编写的服务器端API,为我的Web应用程序提供所有的dynamic数据。 我正在用Ember.js写一个新的前端。 我想创build一个新的后端使用JavaScript的dynamic数据使用旧的API。 基本上是中间件。 我有一个大的JSON文件,其中包含每个页面的信息(标题,描述,获取dynamic数据的URL等)。

website: { tab1: { title: "Tab 1", pages: [ page1: { title: "Page 1", description: "Description 1", url: "url containing data" }, page2: { title: "Page 2", description: "Description 2", url: "url containing data" } ] }, tab2: { title: "Tab 1", pages: [ page1: { title: "Page 1", description: "Description 1", url: "url containing data" }, page2: { title: "Page 2", description: "Description 2", url: "url containing data" } ] } } 

当我向http://server/发送请求时,我想要接收["Tab 1", "Tab 2"]

当我向http://server/tab1发出请求时,我想接收["Page1", "Page 2"]

当我向http://server/tab1/page1发出一个请求时,我想要接收{title: "Page 1", description: "Description 1", data: {DATA FROM URL PROCESSED INTO JSON}}

什么服务器端框架最适合这个? 没有数据库,也没有更改的JSON文件。 有API的更新/创build请求,但中间件只会改变请求的格式并将其传递给旧的API。 我希望有一天能够扩展中间件API来完全替代旧的API,所以我希望有一个框架,而不是自己编写,因为框架在以后会更容易。 我从来没有使用REST API框架,所以任何深入了解。

您可以通过定义您需要的路线轻松地实现这个使用Express 。

一种方法是在Express启动时加载JSON文件,并使用路由参数从JSONdynamic获取所需的部分。 如果JSON很大,而且你不能适应内存,那么我会使用一个数据库。 但是你说了几百页并不多

然后,在您的路由处理程序中,您将根据路由参数筛选JSON对象。 例如:

 app.get('/:tab/:subtab/:page/:resource/:etc', function(request, response, next) { var tab = request.params.tab; var page = request.params.page; // Write a filter() function that extract JSON using tab and page... var json = filter(tab, page); return response.send(json); }); 

以下是Express路由指南:
http://expressjs.com/guide/routing.html