Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / response-time / README.md
1 # response-time
2
3 [![NPM Version][npm-image]][npm-url]
4 [![NPM Downloads][downloads-image]][downloads-url]
5 [![Build Status][travis-image]][travis-url]
6 [![Test Coverage][coveralls-image]][coveralls-url]
7 [![Gratipay][gratipay-image]][gratipay-url]
8
9 Response time for Node.js servers.
10
11 This module creates a middleware that records the response time for
12 requests in HTTP servers. The "response time" is defined here as the
13 elapsed time from when a request enters this middleware to when the
14 headers are written out to the client.
15
16 ## Installation
17
18 ```sh
19 $ npm install response-time
20 ```
21
22 ## API
23
24 ```js
25 var responseTime = require('response-time')
26 ```
27
28 ### responseTime([options])
29
30 Create a middleware that adds a `X-Response-Time` header to responses. If
31 you don't want to use this module to automatically set a header, please
32 see the section about [`responseTime(fn)`](#responsetimeoptions).
33
34 #### Options
35
36 The `responseTime` function accepts an optional `options` object that may
37 contain any of the following keys:
38
39 ##### digits
40
41 The fixed number of digits to include in the output, which is always in
42 milliseconds, defaults to `3` (ex: `2.300ms`).
43
44 ##### header
45
46 The name of the header to set, defaults to `X-Response-Time`.
47
48 ##### suffix
49
50 Boolean to indicate if units of measurement suffix should be added to
51 the output, defaults to `true` (ex: `2.300ms` vs `2.300`).
52
53 ### responseTime(fn)
54
55 Create a new middleware that records the response time of a request and
56 makes this available to your own function `fn`. The `fn` argument will be
57 invoked as `fn(req, res, time)`, where `time` is a number in milliseconds.
58
59 ## Examples
60
61 ### express/connect
62
63 ```js
64 var express = require('express')
65 var responseTime = require('response-time')
66
67 var app = express()
68
69 app.use(responseTime())
70
71 app.get('/', function (req, res) {
72   res.send('hello, world!')
73 })
74 ```
75
76 ### vanilla http server
77
78 ```js
79 var finalhandler = require('finalhandler')
80 var http = require('http')
81 var responseTime = require('response-time')
82
83 // create "middleware"
84 var _responseTime = responseTime()
85
86 http.createServer(function (req, res) {
87   var done = finalhandler(req, res)
88   _responseTime(req, res, function (err) {
89     if (err) return done(err)
90
91     // respond to request
92     res.setHeader('content-type', 'text/plain')
93     res.end('hello, world!')
94   })
95 })
96 ```
97
98 ### response time metrics
99
100 ```js
101 var express = require('express')
102 var responseTime = require('response-time')
103 var StatsD = require('node-statsd')
104
105 var app = express()
106 var stats = new StatsD()
107
108 stats.socket.on('error', function (error) {
109   console.error(error.stack)
110 })
111
112 app.use(responseTime(function (req, res, time) {
113   var stat = (req.method + req.url).toLowerCase()
114     .replace(/[:\.]/g, '')
115     .replace(/\//g, '_')
116   stats.timing(stat, time)
117 }))
118
119 app.get('/', function (req, res) {
120   res.send('hello, world!')
121 })
122 ```
123
124 ## License
125
126 [MIT](LICENSE)
127
128 [npm-image]: https://img.shields.io/npm/v/response-time.svg
129 [npm-url]: https://npmjs.org/package/response-time
130 [travis-image]: https://img.shields.io/travis/expressjs/response-time/master.svg
131 [travis-url]: https://travis-ci.org/expressjs/response-time
132 [coveralls-image]: https://img.shields.io/coveralls/expressjs/response-time/master.svg
133 [coveralls-url]: https://coveralls.io/r/expressjs/response-time?branch=master
134 [downloads-image]: https://img.shields.io/npm/dm/response-time.svg
135 [downloads-url]: https://npmjs.org/package/response-time
136 [gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg
137 [gratipay-url]: https://www.gratipay.com/dougwilson/