{"id":18344,"library":"express-mock-middleware","title":"express-mock-middleware","description":"A simple mock middleware for Express.js that allows you to define mock API responses in separate JavaScript files. Version 0.0.6 is the latest and stable release. It uses a glob pattern to load mock files (e.g., 'mock/**/*.js') where each file exports an object mapping HTTP methods and paths to handler functions. The middleware intercepts matching requests and returns mock data without requiring a real backend. It is a lightweight alternative to full mocking libraries, focusing on simplicity and ease of use. The package has minimal dependencies and is suitable for development and testing environments.","status":"active","version":"0.0.6","language":"javascript","source_language":"en","source_url":"https://github.com/LingyuCoder/express-mock-middleware","tags":["javascript"],"install":[{"cmd":"npm install express-mock-middleware","lang":"bash","label":"npm"},{"cmd":"yarn add express-mock-middleware","lang":"bash","label":"yarn"},{"cmd":"pnpm add express-mock-middleware","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency required to use as middleware","package":"express","optional":false},{"reason":"Used internally to resolve glob patterns for mock files","package":"globby","optional":false}],"imports":[{"note":"CommonJS require works as well, but ESM import is preferred for modern projects.","wrong":"const mockMiddleware = require('express-mock-middleware')","symbol":"default","correct":"import mockMiddleware from 'express-mock-middleware'"},{"note":"The module exports a single function as default. Named destructuring will not work.","wrong":"const { mockMiddleware } = require('express-mock-middleware')","symbol":"mockMiddleware","correct":"const mockMiddleware = require('express-mock-middleware')"},{"note":"No named export; always import default symbol.","wrong":"import { default as mockMiddleware } from 'express-mock-middleware'","symbol":"type","correct":"import mockMiddleware from 'express-mock-middleware'"}],"quickstart":{"code":"const express = require('express');\nconst mockMiddleware = require('express-mock-middleware');\nconst path = require('path');\nconst app = express();\n\n// Define mock files in a directory, e.g., mock/\napp.use(mockMiddleware({\n  glob: 'mock/**/*.js', // relative to process.cwd()\n  cwd: __dirname // optional, resolve from current directory\n}));\n\napp.listen(3000, () => {\n  console.log('Server running on port 3000');\n});\n\n// Example mock file: mock/info.js\n// module.exports = {\n//   'GET /api/info': (req, res) => {\n//     res.json({ success: true, data: { name: 'test' } });\n//   }\n// };","lang":"javascript","description":"Shows how to set up express-mock-middleware with a glob pattern to load mock files and start an Express server."},"warnings":[{"fix":"Pass cwd: __dirname in options to base path on the current file.","message":"Glob pattern is relative to process.cwd() by default; use cwd option to change base directory.","severity":"gotcha","affected_versions":"*"},{"fix":"Use exact format: 'GET /api/info' or 'POST /api/submit'.","message":"Mock files must export an object with keys like 'METHOD /path'. Missing space causes routing failure.","severity":"gotcha","affected_versions":"*"},{"fix":"Use callback-style middleware or provide a synchronous response.","message":"Only supports synchronous handlers; async/await or Promises not supported.","severity":"gotcha","affected_versions":"*"},{"fix":"Consider using a more actively maintained mocking library like 'express-mock-api' or 'msw'.","message":"Package has not been updated since 2015 and may contain security vulnerabilities in dependencies.","severity":"deprecated","affected_versions":">=0.0.1"},{"fix":"Ensure app.use(mockMiddleware(...)) is placed before app.get(...) or other routes.","message":"Middleware overwrites routes; define mock middleware before other route handlers.","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use: const mockMiddleware = require('express-mock-middleware'); or import mockMiddleware from 'express-mock-middleware';","cause":"Destructuring the default export as a named import: const { mockMiddleware } = require('express-mock-middleware');","error":"TypeError: mockMiddleware is not a function"},{"fix":"Run: npm install globby --save-dev","cause":"Missing dependency globby is not installed automatically in some environments.","error":"Cannot find module 'globby'"},{"fix":"Pass cwd: __dirname in options and ensure the mock directory exists relative to that path.","cause":"The glob pattern does not match any files because the cwd is incorrect or the mock directory doesn't exist.","error":"Mock file not loaded: no match for pattern 'mock/**/*.js'"},{"fix":"Ensure key is exactly 'GET /api/info' (space between method and path).","cause":"Mock file key format is incorrect (e.g., 'GET/api/info' without space) or file not loaded.","error":"Route /api/info returned 404"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}