Package Exports
- response-time
- response-time/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (response-time) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
response-time
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-timeAPI
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!')
})