@newstudios/express-middleware-requestid

A middleware that generates a unique Request ID for every incoming HTTP request in express.

Usage no npm install needed!

<script type="module">
  import newstudiosExpressMiddlewareRequestid from 'https://cdn.skypack.dev/@newstudios/express-middleware-requestid';
</script>

README

express-middleware-requestid

A middleware that generates a unique Request ID for every incoming HTTP request in express.

How to develop

Using VSCode as deafult for debugger

# Using NPM
npm run example

# Using Yarn
yarn example

Dependencies

How to use

Installation

# Using NPM
$ npm install --save @newstudios/express-middleware-requestid

# Using Yarn
$ yarn add @newstudios/express-middleware-requestid

Usage

Use @newstudios/express-middleware-requestid as a middleware for a express app. By default, it generates a unique uuid (v4) and exposes it on the response via the X-Request-ID header. The id is also saved as part of the req.idreq.request.idreq.id.

In the following example, the generated uuid is manually exposed on the body for debugging purposes:

const express = require('express');
const requestId = require('@newstudios/express-middleware-requestid');
const app = express();

app.use(requestId({
  type: 'object-id'  // uuid
}));

app.get('/', function (req, res, next) {
  console.log('new v4 id', requestId.generateID())
  console.log('new bson id', requestId.generateID('object-id'))
  console.log('req.id', req.id)
  res.send('req id is' + req.id)
  next();
});

app.listen(3000);

Execute a request to the running app:

❯ curl -v http://localhost:3000

< HTTP/1.1 200 OK
< X-Request-ID: 5ea534105429c3f44cfb188c

5ea534105429c3f44cfb188c

API

Creating an middleware

// With default options
const middleware = requestId({
  header: 'X-Request-ID',
  property: 'id',
  type: 'object-id'
});

Middleware Configuration

These are the available config options for the middleware. All is optional. The middleware try to get the request id from X-Request-ID request header or generate a new request id using uuidv4 generator or bson.

{
  // Request header name to get the forwarded request id
  header: 'X-Request-ID',

  // generate id using bson or uuid
  // 'uuid' | 'object-id'
  type: 'object-id'
}

also has a method generateID

default generate uuid, you can set type as *generateID('object-id')*
new v4 id fad3039d-091f-4611-8288-8c9b90d71697
server.js:11
new bson id 5ea543b87fe39832cee0db5c

License

Provided under the terms of the MIT License

Copyright © 2020, xinpianchang.