@newstudios/express-middleware-requestid
v0.0.3
Published
A middleware that generates a unique Request ID for every incoming HTTP request in express.
Downloads
1
Readme
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.id、req.request.id、req.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.