{"id":18355,"library":"express-ruid","title":"express-ruid","description":"Express.js middleware for generating unique request IDs with prefixes (pid, hostname) and sequence numbers. v1.1.5, stable. Uses built-in crypto. Supports HTTP header inheritance, configurable attribute names, and optional express-http-context integration. Lighter than express-request-id, no external dependencies.","status":"active","version":"1.1.5","language":"javascript","source_language":"en","source_url":"https://github.com/itross/express-ruid","tags":["javascript","express.js","middleware","request","id","uid","typescript"],"install":[{"cmd":"npm install express-ruid","lang":"bash","label":"npm"},{"cmd":"yarn add express-ruid","lang":"bash","label":"yarn"},{"cmd":"pnpm add express-ruid","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Package is ESM-only since v1.1.0? Actually older versions used CJS, but current typings support default import","wrong":"const ruid = require('express-ruid')","symbol":"default","correct":"import ruid from 'express-ruid'"},{"note":"CommonJS require is still supported for Node.js environments","wrong":"import { ruid } from 'express-ruid'","symbol":"ruid","correct":"const ruid = require('express-ruid')"},{"note":"Optional peer dependency; only needed when setInContext: true","wrong":"import { httpContext } from 'express-http-context'","symbol":"HttpContext","correct":"import httpContext from 'express-http-context'"},{"note":"Express augmentation: req.ruid added; TypeScript types included","symbol":"Request","correct":"import type { Request } from 'express'"}],"quickstart":{"code":"import express, { Request, Response } from 'express';\nimport ruid from 'express-ruid';\n\nconst app = express();\n\n// Add request ID middleware\napp.use(ruid());\n\napp.get('/', (req: Request, res: Response) => {\n  console.log(`Request ID: ${req.ruid}`);\n  res.json({ ruid: req.ruid });\n});\n\napp.listen(3000);\n// Output: Request ID: 1234@hostname/abc123-0000000000000001","lang":"typescript","description":"Basic usage: generates unique request ID and attaches to req.ruid."},"warnings":[{"fix":"Use setInContext option and add httpContext.middleware if you need context access. For app.locals, use setInLocals: true (added back in v1.2.0?) – check docs.","message":"v1.1.0 removed app.locals support and introduced express-http-context dependency for context storage.","severity":"breaking","affected_versions":">=1.1.0"},{"fix":"Upgrade to v1.2.0+ or use setInContext with express-http-context.","message":"setInLocals option deprecated in v1.1.0, but restored in v1.2.0? Actually not, stay on v1.0.x if you rely on app.locals.","severity":"deprecated","affected_versions":">=1.1.0 <1.2.0"},{"fix":"Place app.use(httpContext.middleware) BEFORE app.use(ruid({ setInContext: true })).","message":"Forgetting to add httpContext.middleware before ruid when setInContext:true leads to context loss.","severity":"gotcha","affected_versions":">=1.1.0"},{"fix":"Access req.ruid instead of req.rid.","message":"Request ID attribute name changed from 'rid' to 'ruid' in v1.x? Check default: it's 'ruid' in latest.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use header-based ID propagation across microservices to ensure uniqueness.","message":"Middleware resets sequence counter on server restart? Prefix uses random unique part, but sequence may repeat.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use import ruid from 'express-ruid' or const ruid = require('express-ruid').default if using ESM require.","cause":"Using ES import with require or wrong default export import.","error":"TypeError: ruid is not a function"},{"fix":"Ensure app.use(ruid()) is placed before route handlers.","cause":"Accessing req.ruid before the middleware runs or missing ruid() call.","error":"Cannot read properties of undefined (reading 'ruid')"},{"fix":"Add app.use(httpContext.middleware) before ruid.","cause":"setInContext true but httpContext.middleware not added.","error":"express-http-context middleware not used"},{"fix":"Install @types/express and ensure tsconfig includes express-ruid types.","cause":"TypeScript lacks declaration; package ships types but not augmented correctly.","error":"Property 'ruid' does not exist on type 'Request'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}