response-time

by expressjs

expressjs / response-time

Response time header for node.js

419 Stars 56 Forks Last release: almost 4 years ago (2.3.2) MIT License 97 Commits 8 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

response-time

NPM Version NPM Downloads Build Status Test Coverage

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

This is a Node.js module available through the npm registry. Installation is done using the

npm install
command:

$ 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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.