Express middleware to generate or propagate X-Request-ID request header.
npm install @gfx687/express-request-idMiddleware for express to generate or propagate X-Request-ID (or other custom) request header.
Install @gfx687/express-request-id with:
npm install @gfx687/express-request-id
Peer dependencies:
- express
Basic usage example:
``typescript
import express from "express";
import { requestID } from "@gfx687/express-request-id";
const app = express();
const port = 3000;
app.use(requestID());
app.get("/", (req: express.Request, res: express.Response) => {
res.send(Request with ID=${req.id} received!);
});
app.listen(port, () => {
console.log(Example app listening on port ${port});`
});
Request ID is accessible via express.Request object's id field.
Example:
`typescriptRequest with ID=${req.id} received!
app.get("/", (req: express.Request, res: express.Response) => {
res.send();`
});
Middleware accepts options object of the following format:
`typescript
type Options = {
// default = node's crypto.randomUUID()
generator?: (request: Request) => string;
// default = 'X-Request-ID'
headerName?: string;
// default = true
setResponseHeader?: boolean;
};
`
Usage example:
`typescript``
app.use(
requestID({
generator: (expressRequest) => customIdGenerator(expressRequest),
headerName: "correlation-id",
setResponseHeader: false,
})
);