Response time for Node.js servers.Node.js服务器的响应时间。
This module creates a middleware that records the response time for requests in HTTP servers. 此模块创建一个中间件,用于记录HTTP服务器中请求的响应时间。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.“响应时间”在这里定义为从请求进入该中间件到将头写入客户端所经过的时间。
This is a Node.js module available through the npm registry. 这是一个Node.js模块,可通过npm注册表获得。Installation is done using the 使用npm install
command:npm install
命令完成安装:
$ npm install response-time
var responseTime = require('response-time')
Create a middleware that adds a 创建一个向响应添加X-Response-Time
header to responses. X-Response-Time
标头的中间件。If you don't want to use this module to automatically set a header, please see the section about responseTime(fn).如果您不想使用此模块自动设置标题,请参阅关于responseTime(fn)的部分。
The responseTime
function accepts an optional options
object that may contain any of the following keys:responseTime
函数接受可选options
对象,该对象可能包含以下任意键:
The fixed number of digits to include in the output, which is always in milliseconds, defaults to 输出中包含的固定位数(始终以毫秒为单位)默认为3
(ex: 2.300ms
).3
(例如:2.300ms
)。
The name of the header to set, defaults to 要设置的标头的名称,默认为X-Response-Time
.X-Response-Time
。
Boolean to indicate if units of measurement suffix should be added to the output, defaults to 布尔值表示是否应将测量单位后缀添加到输出中,默认为true
(ex: 2.300ms
vs 2.300
).true
(例如:2.300ms
vs 2.300
)。
Create a new middleware that records the response time of a request and makes this available to your own function 创建一个记录请求响应时间的新中间件,并使其可用于您自己的函数fn
. fn
。The fn
argument will be invoked as fn(req, res, time)
, where time
is a number in milliseconds.fn
参数将以fn(req, res, time)
的形式调用,其中time
是以毫秒为单位的数字。
var express = require('express')
var responseTime = require('response-time')
var app = express()
app.use(responseTime())
app.get('/', function (req, res) {
res.send('hello, world!')
})
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!')
})
})
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!')
})