黑人生命也是命。
支持平等正義倡議.

response-time

NPM Version NPM Downloads Build Status Test Coverage

Node.js 伺服器的回應時間。

此模組會建立一個中間件,用來記錄 HTTP 伺服器中要求的回應時間。此處定義的「回應時間」是指要求進入此中間件到標頭寫入至用戶端的經過時間。

安裝

這是一個 Node.js 模組,可透過 npm 註冊 取得。安裝時使用 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)。

要設定的標頭名稱,預設為 X-Response-Time

suffix

布林值,表示是否要將測量單位字尾新增到輸出中,預設為 true(例如:2.300ms2.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!')
})

授權

MIT