response-time middleware
Tempo di risposta per i server Node.js.
Questo modulo crea un middleware che registra il tempo di risposta per le richieste nei server HTTP. Il “tempo di risposta” è definito qui come il tempo trascorso da quando una richiesta entra in questo middleware a quando le intestazioni sono scritte al client.
Installazione
Questo è un modulo Node.js disponibile attraverso la
npm registry. L’installazione viene eseguita usando il comando
npm install:
$ npm install response-timeAPI
var responseTime = require('response-time');responseTime([options])
Crea un middleware che aggiunge un’intestazione X-Response-Time alle risposte. Se
non vuoi usare questo modulo per impostare automaticamente un’intestazione, per favore
vedi la sezione relativa a responseTime(fn).
Opzioni
La funzione responseTime accetta un oggetto options opzionale che può
contenere una delle seguenti chiavi:
digits
Il numero fisso di cifre da includere nell’output, che è sempre in
millisecondi, è predefinito per 3 (es: 2.300ms).
intestazione
Il nome dell’intestazione da impostare, è predefinito X-Response-Time.
suffix
Booleano per indicare se le unità di misura suffisso devono essere aggiunte all’output
, il valore predefinito è true (es: 2.300ms vs 2.300).
responseTime(fn)
Crea un nuovo middleware che registra il tempo di risposta di una richiesta e
lo mette a disposizione della tua funzione fn. L’argomento fn sarà
invocato come fn(req, res, time), dove time è un numero in millisecondi.
Esempi
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!');});server http vanilla
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!'); });});metriche del tempo di risposta
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!');});