response-time middleware

Temps de réponse pour les serveurs Node.js.

Ce module crée un middleware qui enregistre le temps de réponse des requêtes dans les serveurs HTTP. Le “temps de réponse” est défini ici comme le délai écoulé à partir du moment où une requête entre ce middleware jusqu’à quand les en-têtes sont écrits au client.

Installation

Ceci est un module Node.js disponible via npm registry. L’installation se fait à l’aide de la commande npm install:

Terminal window
$ npm install response-time

API

var responseTime = require('response-time');

responseTime([options])

Créez un middleware qui ajoute un en-tête X-Response-Time aux réponses. Si vous ne voulez pas utiliser ce module pour définir automatiquement un en-tête, veuillez voir la section à propos de responseTime(fn).

Options

La fonction responseTime accepte un objet optionnel options qui peut contenir l’une des clés suivantes:

digits

Le nombre fixe de chiffres à inclure dans la sortie, qui est toujours en millisecondes, par défaut à 3 (ex: 2.300ms).

En-tête

Le nom de l’en-tête à définir, par défaut, X-Response-Time.

suffix

Booléen pour indiquer si le suffixe d’unité de mesure doit être ajouté à la sortie, par défaut à true (ex: 2.300ms vs 2.300).

responseTime(fn)

Créez un nouveau middleware qui enregistre le temps de réponse d’une requête et le rend disponible à votre propre fonction fn. L’argument fn sera appelé en tant que fn(req, res, temps), où time est un nombre en millisecondes.

Exemples

express/connexion

var express = require('express');
var responseTime = require('response-time');
var app = express();
app.use(responseTime());
app.get('/', function (req, res) {
res.send('hello, world!');
});

serveur 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!');
});
});

métriques de temps de réponse

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!');
});

Licence

MIT