注意
此页面生成自 response-time README。response-time
Node.js 服务器的响应时间。
此模块创建了一个中间件,用于记录 HTTP 服务器中请求的响应时间。“响应时间”在此处定义为请求进入此中间件到将头部写入客户端所经过的时间。
安装
这是一个通过 npm 注册表提供的 Node.js 模块。使用 npm install
命令进行安装
$ npm install response-time
API
var responseTime = require('response-time')
responseTime([options])
创建一个中间件,它会为响应添加一个 X-Response-Time
头部。如果你不想使用此模块自动设置头部,请参阅关于 responseTime(fn)
的部分。
选项
responseTime
函数接受一个可选的 options
对象,该对象可能包含以下任何键
digits
输出中包含的固定位数,始终以毫秒为单位,默认为 3
(例如:2.300ms
)。
header
要设置的头部名称,默认为 X-Response-Time
。
suffix
布尔值,表示是否在输出中添加度量单位后缀,默认为 true
(例如:2.300ms
对比 2.300
)。
responseTime(fn)
创建一个新的中间件,它会记录请求的响应时间并将其提供给你自己的函数 fn
。fn
参数将作为 fn(req, res, time)
调用,其中 time
是一个以毫秒为单位的数字。
示例
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!')
})
原生的 http 服务器
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!')
})