{"_id":"response-time","_rev":"69404","name":"response-time","description":"Response time for Node.js servers","dist-tags":{"latest":"2.3.2"},"maintainers":[{"name":"mscdex","email":"mscdex@mscdex.net"}],"time":{"modified":"2021-06-03T10:22:58.000Z","created":"2014-02-08T18:51:52.988Z","2.3.2":"2016-11-16T01:33:05.240Z","2.3.1":"2015-05-14T23:28:45.120Z","2.3.0":"2015-02-16T07:54:08.612Z","2.2.0":"2014-09-23T04:43:42.636Z","2.1.0":"2014-09-17T08:11:58.323Z","2.0.1":"2014-08-11T01:49:55.330Z","2.0.0":"2014-06-01T01:07:57.129Z","1.0.0":"2014-02-08T18:51:52.988Z"},"users":{"markthethomas":true,"kparkov":true,"summer":true,"robermac":true,"flyslow":true,"hema":true,"wangnan0610":true,"algonzo":true,"sasquatch":true,"milfromoz":true,"igorissen":true,"juangotama":true,"jmorris":true,"writeosahon":true,"liuyidi":true,"mauricedb":true,"giussa_dan":true,"gggauravgandhi":true,"bengi":true,"rocket0191":true,"kevinhassan":true,"cognivator":true,"chinawolf_wyp":true,"firefoxnx":true,"vjudge":true,"loind":true,"garenyondem":true,"processbrain":true,"obsessiveprogrammer":true,"carlosvillademor":true,"abinpal":true,"endsoul":true},"author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"repository":{"type":"git","url":"https://github.com/expressjs/response-time"},"versions":{"2.3.2":{"name":"response-time","description":"Response time for Node.js servers","version":"2.3.2","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","keywords":["http","res","response time","x-response-time"],"repository":{"type":"git","url":"https://github.com/expressjs/response-time"},"dependencies":{"depd":"~1.1.0","on-headers":"~1.0.1"},"devDependencies":{"after":"0.8.2","eslint":"3.10.1","eslint-config-standard":"6.2.1","eslint-plugin-promise":"3.3.2","eslint-plugin-standard":"2.0.1","istanbul":"0.4.5","mocha":"2.5.3","supertest":"1.1.0"},"files":["LICENSE","HISTORY.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"lint":"eslint .","test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"gitHead":"34c40bc97bcd7e54e13b33f77ee231ca2032de6c","bugs":{"url":"https://github.com/expressjs/response-time/issues"},"homepage":"https://github.com/expressjs/response-time","_id":"response-time@2.3.2","_shasum":"ffa71bab952d62f7c1d49b7434355fbc68dffc5a","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"mscdex","email":"mscdex@mscdex.net"}],"dist":{"shasum":"ffa71bab952d62f7c1d49b7434355fbc68dffc5a","size":3658,"noattachment":false,"key":"/response-time/-/response-time-2.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/response-time/download/response-time-2.3.2.tgz"},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/response-time-2.3.2.tgz_1479259984678_0.6870394593570381"},"directories":{},"publish_time":1479259985240,"_cnpm_publish_time":1479259985240,"_hasShrinkwrap":false},"2.3.1":{"name":"response-time","description":"Response time for Node.js servers","version":"2.3.1","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","keywords":["http","res","response time","x-response-time"],"repository":{"type":"git","url":"https://github.com/expressjs/response-time"},"dependencies":{"depd":"~1.0.1","on-headers":"~1.0.0"},"devDependencies":{"after":"0.8.1","istanbul":"0.3.9","mocha":"2.2.5","supertest":"1.0.1"},"files":["LICENSE","HISTORY.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"gitHead":"c05c1aac63d9841209e613f7750f0963a771f789","bugs":{"url":"https://github.com/expressjs/response-time/issues"},"homepage":"https://github.com/expressjs/response-time","_id":"response-time@2.3.1","_shasum":"2bde19181de6c81ab95e3207a28d61d965b31797","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"mscdex","email":"mscdex@mscdex.net"}],"dist":{"shasum":"2bde19181de6c81ab95e3207a28d61d965b31797","size":3519,"noattachment":false,"key":"/response-time/-/response-time-2.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/response-time/download/response-time-2.3.1.tgz"},"directories":{},"publish_time":1431646125120,"_cnpm_publish_time":1431646125120,"_hasShrinkwrap":false},"2.3.0":{"name":"response-time","description":"Response time for Node.js servers","version":"2.3.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","keywords":["http","res","response time","x-response-time"],"repository":{"type":"git","url":"https://github.com/expressjs/response-time"},"dependencies":{"depd":"~1.0.0","on-headers":"~1.0.0"},"devDependencies":{"after":"0.8.1","istanbul":"0.3.5","mocha":"~2.1.0","supertest":"0.15.0"},"files":["LICENSE","HISTORY.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"gitHead":"caaf6909b8b8252fc655bde58b90715a7c994090","bugs":{"url":"https://github.com/expressjs/response-time/issues"},"homepage":"https://github.com/expressjs/response-time","_id":"response-time@2.3.0","_shasum":"27cf2194fa373ef02c04781287416a3138060b68","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"mscdex","email":"mscdex@mscdex.net"}],"dist":{"shasum":"27cf2194fa373ef02c04781287416a3138060b68","size":3510,"noattachment":false,"key":"/response-time/-/response-time-2.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/response-time/download/response-time-2.3.0.tgz"},"directories":{},"publish_time":1424073248612,"_cnpm_publish_time":1424073248612,"_hasShrinkwrap":false},"2.2.0":{"name":"response-time","description":"Response time header for node.js","version":"2.2.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","keywords":["http","res","response time","x-response-time"],"repository":{"type":"git","url":"https://github.com/expressjs/response-time"},"dependencies":{"depd":"~1.0.0","on-headers":"~1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.4","supertest":"~0.13.0"},"files":["LICENSE","HISTORY.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"gitHead":"ef9569319703e5fac47ce116641e12c617b8f7a5","bugs":{"url":"https://github.com/expressjs/response-time/issues"},"homepage":"https://github.com/expressjs/response-time","_id":"response-time@2.2.0","_shasum":"77ab4688cbf030e9c5f82dc1eac7fe5226d3c8eb","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"mscdex","email":"mscdex@mscdex.net"}],"dist":{"shasum":"77ab4688cbf030e9c5f82dc1eac7fe5226d3c8eb","size":2934,"noattachment":false,"key":"/response-time/-/response-time-2.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/response-time/download/response-time-2.2.0.tgz"},"directories":{},"publish_time":1411447422636,"_cnpm_publish_time":1411447422636,"_hasShrinkwrap":false},"2.1.0":{"name":"response-time","description":"Response time header for node.js","version":"2.1.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","keywords":["http","res","response time","x-response-time"],"repository":{"type":"git","url":"https://github.com/expressjs/response-time"},"dependencies":{"depd":"0.4.5","on-headers":"~1.0.0"},"devDependencies":{"istanbul":"0.3.2","mocha":"~1.21.4","supertest":"~0.13.0"},"files":["LICENSE","HISTORY.md","index.js"],"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"gitHead":"b6d47234b3d8790d58707080f348b4af5ee76fd9","bugs":{"url":"https://github.com/expressjs/response-time/issues"},"homepage":"https://github.com/expressjs/response-time","_id":"response-time@2.1.0","_shasum":"9bc4cc7f4433a5d41932eaf65d4d228c65d3d5e4","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"mscdex","email":"mscdex@mscdex.net"}],"dist":{"shasum":"9bc4cc7f4433a5d41932eaf65d4d228c65d3d5e4","size":2808,"noattachment":false,"key":"/response-time/-/response-time-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/response-time/download/response-time-2.1.0.tgz"},"directories":{},"publish_time":1410941518323,"_cnpm_publish_time":1410941518323,"_hasShrinkwrap":false},"2.0.1":{"name":"response-time","description":"X-Response-Time header for node.js","version":"2.0.1","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/response-time"},"dependencies":{"on-headers":"~1.0.0"},"devDependencies":{"istanbul":"0.3.0","mocha":"~1.21.4","supertest":"~0.13.0"},"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --reporter spec --bail --check-leaks test/","test-cov":"istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/","test-travis":"istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"},"gitHead":"c8ee1a0a215f6c2b9168be81763b7c74cd17cdec","bugs":{"url":"https://github.com/expressjs/response-time/issues"},"homepage":"https://github.com/expressjs/response-time","_id":"response-time@2.0.1","_shasum":"c6d2cbadeac4cb251b21016fe182640c02aff343","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"mscdex","email":"mscdex@mscdex.net"}],"dist":{"shasum":"c6d2cbadeac4cb251b21016fe182640c02aff343","size":2184,"noattachment":false,"key":"/response-time/-/response-time-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/response-time/download/response-time-2.0.1.tgz"},"directories":{},"publish_time":1407721795330,"_cnpm_publish_time":1407721795330,"_hasShrinkwrap":false},"2.0.0":{"name":"response-time","description":"X-Response-Time header for node.js","version":"2.0.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"contributors":[{"name":"Douglas Christopher Wilson","email":"doug@somethingdoug.com"}],"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/response-time.git"},"bugs":{"url":"https://github.com/expressjs/response-time/issues"},"dependencies":{"on-headers":"0.0.0"},"devDependencies":{"mocha":"~1.20.0","supertest":"~0.13.0"},"engines":{"node":">= 0.8.0"},"scripts":{"test":"mocha --reporter dot","test-travis":"mocha --reporter spec"},"homepage":"https://github.com/expressjs/response-time","_id":"response-time@2.0.0","_shasum":"65cb39fd50de2f4ffdbdd285f1855966bd6fcb36","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"dougwilson","email":"doug@somethingdoug.com"},"maintainers":[{"name":"mscdex","email":"mscdex@mscdex.net"}],"dist":{"shasum":"65cb39fd50de2f4ffdbdd285f1855966bd6fcb36","size":2031,"noattachment":false,"key":"/response-time/-/response-time-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/response-time/download/response-time-2.0.0.tgz"},"directories":{},"publish_time":1401584877129,"_cnpm_publish_time":1401584877129,"_hasShrinkwrap":false},"1.0.0":{"name":"response-time","description":"X-Response-Time header for node.js","version":"1.0.0","author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/expressjs/response-time.git"},"bugs":{"url":"https://github.com/expressjs/response-time/issues"},"devDependencies":{"mocha":"*","should":"*","supertest":"*"},"scripts":{"test":"make test"},"homepage":"https://github.com/expressjs/response-time","_id":"response-time@1.0.0","dist":{"shasum":"c2bc8d08f3c359f97eae1d6da86eead175fabdc9","size":1647,"noattachment":false,"key":"/response-time/-/response-time-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/response-time/download/response-time-1.0.0.tgz"},"_from":".","_npmVersion":"1.3.24","_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"maintainers":[{"name":"mscdex","email":"mscdex@mscdex.net"}],"directories":{},"publish_time":1391885512988,"_cnpm_publish_time":1391885512988,"_hasShrinkwrap":false}},"readme":"# response-time\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n[![Gratipay][gratipay-image]][gratipay-url]\n\nResponse time for Node.js servers.\n\nThis module creates a middleware that records the response time for\nrequests in HTTP servers. The \"response time\" is defined here as the\nelapsed time from when a request enters this middleware to when the\nheaders are written out to the client.\n\n## Installation\n\n```sh\n$ npm install response-time\n```\n\n## API\n\n```js\nvar responseTime = require('response-time')\n```\n\n### responseTime([options])\n\nCreate a middleware that adds a `X-Response-Time` header to responses. If\nyou don't want to use this module to automatically set a header, please\nsee the section about [`responseTime(fn)`](#responsetimeoptions).\n\n#### Options\n\nThe `responseTime` function accepts an optional `options` object that may\ncontain any of the following keys:\n\n##### digits\n\nThe fixed number of digits to include in the output, which is always in\nmilliseconds, defaults to `3` (ex: `2.300ms`).\n\n##### header\n\nThe name of the header to set, defaults to `X-Response-Time`.\n\n##### suffix\n\nBoolean to indicate if units of measurement suffix should be added to\nthe output, defaults to `true` (ex: `2.300ms` vs `2.300`).\n\n### responseTime(fn)\n\nCreate a new middleware that records the response time of a request and\nmakes this available to your own function `fn`. The `fn` argument will be\ninvoked as `fn(req, res, time)`, where `time` is a number in milliseconds.\n\n## Examples\n\n### express/connect\n\n```js\nvar express = require('express')\nvar responseTime = require('response-time')\n\nvar app = express()\n\napp.use(responseTime())\n\napp.get('/', function (req, res) {\n  res.send('hello, world!')\n})\n```\n\n### vanilla http server\n\n```js\nvar finalhandler = require('finalhandler')\nvar http = require('http')\nvar responseTime = require('response-time')\n\n// create \"middleware\"\nvar _responseTime = responseTime()\n\nhttp.createServer(function (req, res) {\n  var done = finalhandler(req, res)\n  _responseTime(req, res, function (err) {\n    if (err) return done(err)\n\n    // respond to request\n    res.setHeader('content-type', 'text/plain')\n    res.end('hello, world!')\n  })\n})\n```\n\n### response time metrics\n\n```js\nvar express = require('express')\nvar responseTime = require('response-time')\nvar StatsD = require('node-statsd')\n\nvar app = express()\nvar stats = new StatsD()\n\nstats.socket.on('error', function (error) {\n  console.error(error.stack)\n})\n\napp.use(responseTime(function (req, res, time) {\n  var stat = (req.method + req.url).toLowerCase()\n    .replace(/[:\\.]/g, '')\n    .replace(/\\//g, '_')\n  stats.timing(stat, time)\n}))\n\napp.get('/', function (req, res) {\n  res.send('hello, world!')\n})\n```\n\n## License\n\n[MIT](LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/response-time.svg\n[npm-url]: https://npmjs.org/package/response-time\n[travis-image]: https://img.shields.io/travis/expressjs/response-time/master.svg\n[travis-url]: https://travis-ci.org/expressjs/response-time\n[coveralls-image]: https://img.shields.io/coveralls/expressjs/response-time/master.svg\n[coveralls-url]: https://coveralls.io/r/expressjs/response-time?branch=master\n[downloads-image]: https://img.shields.io/npm/dm/response-time.svg\n[downloads-url]: https://npmjs.org/package/response-time\n[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg\n[gratipay-url]: https://www.gratipay.com/dougwilson/\n","_attachments":{},"homepage":"https://github.com/expressjs/response-time","bugs":{"url":"https://github.com/expressjs/response-time/issues"},"license":"MIT"}