Middleware 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:
Basic usage example:
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:
app.get("/", (req: express.Request, res: express.Response) => {
res.send(`Request with ID=${req.id} received!`);
});Middleware accepts options object of the following format:
type Options = {
// default = node's crypto.randomUUID()
generator?: (request: Request) => string;
// default = 'X-Request-ID'
headerName?: string;
// default = true
setResponseHeader?: boolean;
};Usage example:
app.use(
requestID({
generator: (expressRequest) => customIdGenerator(expressRequest),
headerName: "correlation-id",
setResponseHeader: false,
})
);