How to measure how much time request take in NodeJS

Viewed 3908
const axios = require("axios");

axios.get('url')
  .then(response => {
     console.log(response)
  })
  .catch(err => console.log(err))

How can i measure how much time did it take for website to return full page?

2 Answers

You can use performance.now() to measure the time between starting and finishing the request.

const axios = require("axios");
const { performance } = require('perf_hooks');

let time = performance.now();

axios.get('url')
  .then(response => {
     console.log(response)
     console.log(`${(performance.now() - time) / 1000} seconds`);
  })
  .catch(err => console.log(err))

Also, You can easily use axios.interceptors for getting the time at request start and after the response has reached And add it as a part of axios.create. For request:

axios.interceptors.request.use(function (config) {
  config.timeData = { startTime: new Date()}
  return config;
}, function (error) {
  return Promise.reject(error);
});

And for response:

axios.interceptors.response.use(function (response) {
  response.config.timeData.endTime = new Date()
  return response;
}, function (error) {
  return Promise.reject(error);
});

You can checkout more on interceptors here

Related