request-id
Version:
Allows you to identify client requests within non-sequential logs such as Syslog by adding a response header of `X-Request-Id`. Allows setting value via query parameter or request header. For Koa and Express.
31 lines (25 loc) • 687 B
JavaScript
/**
* imports.
*/
var defaults = require('./defaults');
/**
* Adds a response header of `X-Request-Id` with a unique value for log aggregation.
*
* @param {String} name
* Header or query-string name.
*
* @param {Object} options
* see `defaults` function for details.
*
* @return {Function}
* Koa middleware.
*/
module.exports = function requestId(options) {
var options = defaults(options);
return function *requestId(next) {
this[options.paramName] = this[options.paramName] || this.get(options.reqHeader) || this.query[options.paramName] || options.generator();
this.set(options.resHeader, this[options.paramName]);
yield* next;
};
};
;