Network Performance Monitor
    Wondering what’s next for npm?Check out our public roadmap! »

    response-time
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/response-time package

    2.3.2 • Public • Published

    response-time

    NPM Version NPM Downloads Build Status Test Coverage Gratipay

    Response time for Node.js servers.

    This module creates a middleware that records the response time for requests in HTTP servers. The "response time" is defined here as the elapsed time from when a request enters this middleware to when the headers are written out to the client.

    Installation

    $ npm install response-time

    API

    var responseTime = require('response-time')

    responseTime([options])

    Create a middleware that adds a X-Response-Time header to responses. If you don't want to use this module to automatically set a header, please see the section about responseTime(fn).

    Options

    The responseTime function accepts an optional options object that may contain any of the following keys:

    digits

    The fixed number of digits to include in the output, which is always in milliseconds, defaults to 3 (ex: 2.300ms).

    header

    The name of the header to set, defaults to X-Response-Time.

    suffix

    Boolean to indicate if units of measurement suffix should be added to the output, defaults to true (ex: 2.300ms vs 2.300).

    responseTime(fn)

    Create a new middleware that records the response time of a request and makes this available to your own function fn. The fn argument will be invoked as fn(req, res, time), where time is a number in milliseconds.

    Examples

    express/connect

    var express = require('express')
    var responseTime = require('response-time')
     
    var app = express()
     
    app.use(responseTime())
     
    app.get('/', function (req, res) {
      res.send('hello, world!')
    })

    vanilla http server

    var finalhandler = require('finalhandler')
    var http = require('http')
    var responseTime = require('response-time')
     
    // create "middleware"
    var _responseTime = responseTime()
     
    http.createServer(function (req, res) {
      var done = finalhandler(req, res)
      _responseTime(req, res, function (err) {
        if (err) return done(err)
     
        // respond to request
        res.setHeader('content-type', 'text/plain')
        res.end('hello, world!')
      })
    })

    response time metrics

    var express = require('express')
    var responseTime = require('response-time')
    var StatsD = require('node-statsd')
     
    var app = express()
    var stats = new StatsD()
     
    stats.socket.on('error', function (error) {
      console.error(error.stack)
    })
     
    app.use(responseTime(function (req, res, time) {
      var stat = (req.method + req.url).toLowerCase()
        .replace(/[:\.]/g, '')
        .replace(/\//g, '_')
      stats.timing(stat, time)
    }))
     
    app.get('/', function (req, res) {
      res.send('hello, world!')
    })

    License

    MIT

    Install

    npm i response-time

    DownloadsWeekly Downloads

    229,704

    Version

    2.3.2

    License

    MIT

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar