Как подсчитать посещение URL в Nodejs, express?

#node.js #url

#node.js #url

Вопрос:

Я пытаюсь создать эту базовую CRM, и здесь мне нужно посмотреть, сколько раз клиент посещал ссылку! есть ли какой-либо способ, которым я могу это сделать и сохранить?

Комментарии:

1. для каждого запроса маршрута вы можете сохранить в базе данных

2. не могли бы вы уточнить, пожалуйста?

Ответ №1:

На самом деле я сделал это, как сказал Рави Теджа в комментарии.

Добавлено userClicks в модель базы данных в случае mongoose.

(Это вложено в другой объект)

   analytics: {
        userClicks: {
            type: Number,
            default : 0
        }
    }
  

Когда какой-либо запрос попадает на этот URL, я просто обновляю это количество на единицу.

 app.get('URL', (req, res) => {
//First find document in database
Url.findOne({
  $text: {
    $search: request.params.shortUrl
  }
}).then(url => {
  if (url === null) {
    return response.status(404).json({
      message: "Link in not valid"
    });
  } else {
    //If successfully found, get already stored value and updated with  1, and then update that document.
    const _id = url._id
    let counterClicks = url.analytics.userClicks;
    //Update existing values
    counterClicks  ;
    Url.findByIdAndUpdate({
      _id
    }, {
        $set: {
          'analytics.userClicks': counterClicks
        }
      }).exec().then(url => {
        console.log(url);
        return response.redirect(302, url.originalUrl);
      }).catch(error => {
        console.log(error);
      });
  }
}).catch(error => {
  console.log(error);
});

});
  

Вы можете сделать это с помощью более нового async-await синтаксиса.
Из приведенного выше фрагмента кода мы получим представление о том, как это реализовать.

Комментарии:

1. Спасибо! у меня есть хорошая идея о том, как я могу это сделать! действительно ценю вашу помощь, мистер Пратамеш Г. Я застрял здесь надолго!

2. Не могли бы вы проголосовать и принять решение, чтобы другие люди сочли полезным too.@xetryDcoder

3. конечно! я сделал это!