express-chrono v1.0.2
express-chrono
Simple process.hrtime chronometer with Expressjs middleware. Request timer, process timer.
const express = require("express");
const app = express();
const chrono = require("express-chrono")({ header: true });
app.use(chrono.middleware.start);
app.get("/", (req, res, next)=> {
res.send("Hello World");
next();
});
app.use(chrono.middleware.stop);
app.use((req, res, next) => {
console.log(req.chrono);
});
app.listen(3000);Options
header - boolean or string of the header name. Defaults to false. If true the default header is X-Response-Time
format
- s - seconds, default, e.g
1.029382120s ms - milliseconds, e.g
1029.382120ms
suffix - boolean, default false; include the second or millisecond suffix
Module
const chrono = require("express-chrono")(options);
chrono.middleware
- start - express start middleware, put this before the request. Creates a field
chronoon req of typeChronometer - stop - express stop middleware, put this after the request. Stops the timer on
req.chrono. You can stop the timer at any time fromreq.chrono.stop()or look at the current accumulated timereq.chrono.parse()
class Chronometer
constructor(options) - options, same as above, except header
Properties
diff - returns start time hrtime diff of now or diff since stopped. hrtime - hrtime at start or now if not started.
Methods
start() - starts the chronometer at that moment
stop() - stops the chronometer at that moment
parse(format, suffix) - returns the parsed time so far or since stopped. format and suffix are optional, inheritted from constructor, if provided they will override Chronometer instance options.
toJSON() - returns parse()
toString() - returns parse()
valueOf() - returns current diff or diff since stopped in seconds fixed decimal number with percision of 9.
const Chronometer = require("express-chrono").Chronometer;
let chrono = new Chronometer({ format: "ms", suffix: true });
chrono.start();
setTimeout(() => {
chrono.stop();
console.log(chrono); // 100ms
}, 100);