{"id":27728,"library":"express-maskdata-middleware","title":"Express Maskdata Middleware","description":"Express middleware for masking sensitive data in API responses, built on maskdata. Version 0.1.1 (latest), stable but early stage. Released irregularly. Differentiates by integrating maskdata into Express with simple rule-based configuration for common fields like email, password, phone, SSN, credit card. Supports TypeScript out of the box. Minimal footprint; only dependency is maskdata. Ideal for protecting PII in response bodies without manual transformation.","status":"active","version":"0.1.1","language":"javascript","source_language":"en","source_url":null,"tags":["javascript","typescript"],"install":[{"cmd":"npm install express-maskdata-middleware","lang":"bash","label":"npm"},{"cmd":"yarn add express-maskdata-middleware","lang":"bash","label":"yarn"},{"cmd":"pnpm add express-maskdata-middleware","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core masking engine used by the middleware for all field-level transformations.","package":"maskdata","optional":false},{"reason":"Peer dependency required to integrate as middleware in Express applications.","package":"express","optional":false}],"imports":[{"note":"Package exports ESM. For CJS use dynamic import or check compatibility; named export only.","wrong":"const { createMaskingMiddleware } = require('express-maskdata-middleware')","symbol":"createMaskingMiddleware","correct":"import { createMaskingMiddleware } from 'express-maskdata-middleware'"},{"note":"MaskingRules is exported as a TypeScript type, not a value. Use type import to avoid runtime errors.","wrong":"import { MaskingRules } from 'express-maskdata-middleware'","symbol":"MaskingRules","correct":"import type { MaskingRules } from 'express-maskdata-middleware'"},{"note":"Package has no default export; only named export createMaskingMiddleware is available. This default import will fail at runtime.","wrong":"import * as expressMaskDataMiddleware from 'express-maskdata-middleware'","symbol":"default import","correct":"import expressMaskDataMiddleware from 'express-maskdata-middleware'"}],"quickstart":{"code":"import express from 'express';\nimport { createMaskingMiddleware } from 'express-maskdata-middleware';\n\nconst app = express();\n\nconst maskingRules = {\n  emailFields: ['email'],\n  passwordFields: ['password'],\n  phoneFields: ['phoneNumber'],\n  ssnFields: ['ssn'],\n  cardFields: ['creditCard'],\n};\n\napp.use(createMaskingMiddleware(maskingRules));\n\napp.get('/user', (req, res) => {\n  res.json({\n    email: 'user@example.com',\n    password: 'supersecretpassword',\n    username: 'testuser',\n  });\n});\n\napp.listen(3000, () => console.log('Server running on port 3000'));","lang":"typescript","description":"Initializes an Express app, creates masking middleware with rules for email and password, and applies to all routes. The /user endpoint returns JSON with sensitive fields automatically masked."},"warnings":[{"fix":"Use express.json() and ensure res.json() is used for responses you want masked.","message":"Middleware only masks JSON responses. Non-JSON responses (e.g., XML, HTML) are not transformed.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Flatten or preprocess nested objects, or use maskdata directly for complex structures.","message":"Field names in maskingRules must match exact keys in the response object; nested field paths are not supported (e.g., 'user.email' will not match).","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Implement custom masking for arrays if needed, or ensure array elements are processed individually.","message":"The middleware does not mask arrays of objects; only top-level fields and objects at root or immediate children are processed.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Use the exact npm name: `express-maskdata-middleware`.","message":"package name is misspelled 'express-maskdata-middleware' but actual npm package is 'express-maskdata-middleware' (both correct here; warning for future readers).","severity":"gotcha","affected_versions":">=0.0.0"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Use named import: import { createMaskingMiddleware } from 'express-maskdata-middleware'.","cause":"Attempting to use default import or wrong named import (e.g., import * as mask).","error":"TypeError: createMaskingMiddleware is not a function"},{"fix":"Run: npm install express-maskdata-middleware --save","cause":"Package not installed or misspelled.","error":"Cannot find module 'express-maskdata-middleware'"},{"fix":"Ensure all used fields are defined in the rules object, or use type assertion: createMaskingMiddleware(rules as MaskingRules).","cause":"Missing required properties or TypeScript type mismatch; MaskingRules expects all optional fields but error may arise from strict null checks or version mismatch.","error":"Argument of type '{ emailFields: string[]; }' is not assignable to parameter of type 'MaskingRules'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}