使用分页端点在nodejs中进行身份验证

时间:2018-06-23 16:21:25

标签: javascript node.js asynchronous

我是Node.js开发的新手。我有一个存在端点

的场景

例如:https://example.co/api/people/?page=2

样本响应为

{
"count": 87,
"next": "https://example.co/api/people/?page=3",
"previous": "https://example.co/api/people/?page=1",
"results": [
    {
        "name": "Skywalker",
        "birth_year": "41.9BBY",
        "homeworld": "https://example.co/api/planets/1/",
        "created": "2014-12-10T16:20:44.310000Z",
        "edited": "2014-12-20T21:17:50.327000Z",
        "url": "https://example.co/api/people/11/"
    },
    {
        "name": "Wilhuff",
        "birth_year": "64BBY",
        "created": "2014-12-10T16:26:56.138000Z",
        "edited": "2014-12-20T21:17:50.330000Z",
        "url": "https://example.co/api/people/12/"
    },
    {
        "name": "Chewbacca",
        "birth_year": "200BBY",
        "created": "2014-12-10T16:42:45.066000Z",
        "edited": "2014-12-20T21:17:50.332000Z",
        "url": "https://example.co/api/people/13/"
    }

]
}

如果查询参数page = 2,将给出第2页的结果。

如果我给https://example.co/api/people/,默认情况下它给出的是第1页的结果。

从前端开始,我有一个登录页面,其中用户名和dob分别是loginIdpassword的输入。

当我从前端获得登录ID,密码数据时,我将调用一个公共端点来认证“ https://example.co/api/people/authenticate”,而该端点又将调用具有许多页面的“ https://example.co/api/people/?page=2”端点。如果给定的输入与任何页面结果匹配,则应返回成功消息。

我将如何从可能具有页面的特定端点对后端的输入进行身份验证。

有人可以建议一种方法吗?

1 个答案:

答案 0 :(得分:0)

 listPeople: function(req, res) {
    var perPage = 10;
    var page = (Math.abs(req.body.people.currentPage) || 1);
    req.query.limit = 10;
    var limit = Math.abs(req.query.limit) || 10;
      page = req.body.people.currentPage > 0 ? req.body.people.currentPage : 0
    People
      .find({})
      .limit(perPage)
      .skip(perPage * page)
      .sort({
        name: 'asc'
      }).exec(function(err, peopleRecords) {
        if (people.length) {
          People.count().exec(function(err, count) {
            return res.status(200).send({
              peopleRecords: peopleRecords,
              page: page,
              pages: count / perPage
            });
          })
        }
      });
  },

我在这里添加一个我正在使用的简单示例...

您只需要传递perPage多少条记录? currentPage,即您当前的页面。

希望这会有所帮助:-)