Node js MongoDb Speci c счетчик просмотров страницы - PullRequest
0 голосов
/ 25 апреля 2020

Я создаю приложение со стеком MEAN и хочу при каждом запросе get увеличивать viewCounter для указанного c документа (Свойство) внутри коллекции. Если я вставлю этот код внутрь, получу запрос запрошенного свойства

Property.findByIdAndUpdate('id', { $inc: { counter: 1 } }, {new: true})

Это увеличит загрузку данных, и я хочу сделать это после того, как пользователь получит свои данные. Так что лучший способ сделать это просто отправить дополнительный запрос в базу данных после загрузки исходных данных?

Property {
   name: '',
   description: '',
   ...,
   viewCounter: 5
}

exports.getProperty = catchAsync(async (req, res, next) => {

    query = await Property.findById(req.params.id).lean();

    if(!query) {
      return next(new AppError('No property found with that ID', 404))
    }

    res.status(200).json({
      status: 'success',
      data: {
        query
      }
    })
})

Ответы [ 2 ]

2 голосов
/ 25 апреля 2020

События узла могут использоваться для хранения счетчика событий.

Официальный документ

Ссылка для кода

eventEmitter.on('db_view', ({ parameters }) => {
    eventTracker.track(
    'db_view',
    parameters
    );
})

eventEmitter.on('db_view', async ({ user, company }) => {
    Property.findByIdAndUpdate('id', { $inc: { counter: 1 } }, {new: true})
})
0 голосов
/ 25 апреля 2020

Попробуйте отправить запрос, убедившись, что документ загружен.

angular.element($window).bind('load', function() {
    //put your code
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...