node-requestid

Request ID tracking


Keywords
node, requestid
License
MIT
Install
npm install node-requestid@1.0.0

Documentation

node-requestid

Reads a request ID header from the HTTP request and writes it into the HTTP response. By default, the header is called X-Request-ID but this value can be overwritten.

If there is no value for the header on the request, a Version 4 UUID is generated and used as the value and added to the response.

Usage

const requestId = require("node-requestid")()
const restify = require("restify") // should be compatible with express, not tested

const restify = require("restify");
const server = restify.createServer();

// make the requestId the first middleware to ensure a requestId down the stack
server.use(requestId)
// other middlewares wired up here ...

server.get("/", (req, res, next)=>{
    const reqid = req.header("X-Request-ID")

    res.send(200, "You're Request ID was: " + reqid)
})

cURL Example:

$ curl -v http://127.0.0.1:3000
* Rebuilt URL to: http://127.0.0.1:3000/
*   Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 3000 (#0)
> GET / HTTP/1.1
> Host: 127.0.0.1:3000
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Connection: close
< X-Request-ID: 3fd20475-68b8-46d1-a80e-02ef2ee75801
< Content-Type: application/json
< Content-Length: 2
< Date: Fri, 09 Sep 2016 03:54:02 GMT
<
* Closing connection 0
{}
curl -v http://127.0.0.1:3000 --header "X-Request-ID: 123"
* Rebuilt URL to: http://127.0.0.1:3000/
*   Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 3000 (#0)
> GET / HTTP/1.1
> Host: 127.0.0.1:3000
> User-Agent: curl/7.43.0
> Accept: */*
> X-Request-ID: 123
>
< HTTP/1.1 200 OK
< Connection: close
< X-Request-ID: 123
< Content-Type: application/json
< Content-Length: 2
< Date: Fri, 09 Sep 2016 03:56:27 GMT
<
* Closing connection 0
{}