如何计算用户看到的页面浏览量?

时间:2018-10-11 08:21:16

标签: javascript loopbackjs

我只是在做一个像这样的问答Web应用程序。我想计算用户像SO 12 views这样查看的页面浏览量。

我使用回送作为服务器,并且我有一个包含numberOfViews属性的模型问题。这是我面临的问题,默认情况下,回送生成/ questions / {id}端点,此端点通过id查找问题并返回它,但除了返回问题外,我还想增加问题的numberOfViews属性。如何做到这一点?

questions model

[
  {
    "title": "string",
    "body": "string",
    "tags": [
      "string"
    ],
    "date": "string",
    "numberOfViews" : 0,
    "questionerId": "string",
    "answers": [
      "string"
    ],
    "voteNumber": 0,
    "shortComments": [
      "string"
    ],
    "usersUpVoted": [
      "string"
    ],
    "usersDownVoted": [
      "string"
    ],
    "id": "string"
  }
]

任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:3)

您可以尝试使用hook

MyModel.observe('access', function logQuery(ctx, next) {
  console.log('Accessing %s matching %s', ctx.Model.modelName, ctx.query.where);
  next();
});

注意:

  

您可以检查您在ctx中得到的内容,并在observe中使用自定义条件来满足您的要求。因为我还没有测试。

参考链接:githubdocument

答案 1 :(得分:0)

如果只需要在“ findById”远程方法上增加numberOfViews属性,最好在远程挂接后使用:

  Model.afterRemote('findById', (ctx, result, cb) => {
    // You code here...
  });

或者与使用async / await相同(您应该在此处返回promise,或者代码冻结)

  Model.afterRemote('findById', async (ctx, result) => {
    // You code here...
  });