javascript - Node API框架

标签 javascript node.js sails.js loopbackjs restify

我有一个用 Java 编写的服务器端 API,它为我的 Web 应用程序提供所有动态数据。我正在用 Ember.js 编写一个新的前端。我想使用 Javascript 创建一个新的后端,该后端使用旧的 API 来处理动态数据。基本上是中间件。我有一个很大的 JSON 文件,其中包含每个页面的信息(标题、描述、从中获取动态数据的 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: {来自 URL 的数据已处理为 JSON}}

哪种服务器端框架最适合这个?没有数据库,也没有更改 JSON 文件。有对 API 的更新/创建请求,但中间件只会更改请求的格式并将其传递给旧 API。我希望有一天能够扩展中间件 API 以完全取代旧的 API,所以我想要一个框架,而不是自己编写所有内容,因为以后框架会更容易。我从未使用过 REST API 框架,因此非常感谢任何见解。

最佳答案

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

一种方法是在 Express 启动时加载 JSON 文件,并使用路由参数从 JSON 中动态获取所需的片段。如果 JSON 很大并且内存无法容纳,那么我会使用 DB。但你说的 100 页看起来并不多

然后,在路由处理程序中,您将根据路由参数过滤 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);
});

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

关于javascript - Node API框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33448129/

相关文章:

javascript - "Element is not clickable at point (x,y)"。不可见元素覆盖按钮

javascript - select2将相关数据加载到第二个select2中?

node.js - 如何生成房间 ID 并强制两个用户加入该房间?

node.js - ( Node )JS实用函数将lcov文件转换为cobertura XML

javascript - 高速公路JS : Remote call to asyncronous function

mysql - Sails JS - 动态连接到 MySQL 数据库

javascript - 如何将数据传递到 Bootstrap 模型中?

javascript - 在随机位置写入文本

javascript - 在 Highcharts 中,如何为多金字塔图表中的每个金字塔设置标题

javascript - 我们如何重新加载风 sails 控制台?