Как посчитать количество просмотров страницы, увиденных пользователями? - PullRequest
0 голосов
/ 11 октября 2018

Я просто делаю веб-приложение для вопросов и ответов, такое как SO.Я хочу посчитать количество просмотров страницы, просмотренных пользователем, например, SO 12 views.

. Я использовал loopback в качестве сервера, и у меня есть модельные вопросы, которые содержат свойство numberOfViews.Вот проблема, с которой я столкнулся, по умолчанию loopback генерирует конечную точку / questions / {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 голосов
/ 14 октября 2018

Если вам нужно увеличивать свойство numberOfViews только в удаленном методе "findById", который лучше использовать после удаленного подключения:

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

Или то же самое, используя async / await (вы должны вернуть обещание здесь, или выкод заморозить)

  Model.afterRemote('findById', async (ctx, result) => {
    // You code here...
  });
0 голосов
/ 11 октября 2018

Вы можете попробовать hook для этой цели.

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

Примечание:

Вы можете проверить, что вы получаете в ctx и использовать свое пользовательское условие в observe чтобы выполнить ваше требование.Поскольку я не проверял это.

ссылка: github , document

...