平均堆栈:想知道 api.js 和 crud.js

MEAN stack: Wondering api.js and crud.js

我最近在研究MEAN stack,所以我按照指导制作了一些示例应用程序。我在几个小时前制作了 "Bookshelf" 应用程序,这是由 google 云服务提供的,因此我应该深入研究示例代码以了解其工作原理。

完整源代码:https://github.com/GoogleCloudPlatform/nodejs-getting-started/tree/master/2-structured-data

示例应用程序:http://mymongo-1165.appspot.com/books

books/api.js

  router.get('/', function list(req, res) {
    model.list(10, req.query.pageToken,
      function(err, entities, cursor) {
        if (err) { return handleRpcError(err, res); }
        res.json({
          items: entities,
          nextPageToken: cursor
        });
      });
  });

books/curd.js

  router.get('/', function list(req, res) {
    model.list(10, req.query.pageToken,
      function(err, entities, cursor) {
        if (err) { return handleRpcError(err, res); }
        res.render('books/list.jade', {
          books: entities,
          nextPageToken: cursor
        });
      }
    );
  });

这2个代码很相似,但我不知道为什么会出现这些相似的代码。我觉得crud.js就够了,可是为什么会出现api.js。你能解释一下这两个代码是如何工作的吗?

在此示例应用程序中,有两个接口:

  1. 图形用户界面 (GUI) - curd.js 处理生成稍后在浏览器中呈现的 HTML(在我们的例子中涉及翡翠诱人的语言)
  2. 应用程序编程接口 (API) - api.js 提供了在没有浏览器的情况下以编程方式与应用程序交互的方式(例如:在数据库中创建新记录, 或通过对特定路由进行特定调用来查询一些数据)

为了更深入的理解,我建议学习更多关于 express.js 的知识,这样可以更好地了解这些输出是什么。

P.S。欢迎来到 MEAN 世界 :)