{"id":18366,"library":"express-yup-middleware","title":"express-yup-middleware","description":"Express middleware that validates request body, query, and params using Yup schemas. Version 2.0.0 is the latest stable release. It integrates Yup validation into Express routes and returns structured error responses. Differentiators include custom error messages per field, validation options per schema part (e.g., abortEarly), and cross-validation via context. Requires Yup as a peer dependency.","status":"active","version":"2.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/wgrisa/express-yup-middleware","tags":["javascript","express","yup","validation","validator","middleware","typescript"],"install":[{"cmd":"npm install express-yup-middleware","lang":"bash","label":"npm"},{"cmd":"yarn add express-yup-middleware","lang":"bash","label":"yarn"},{"cmd":"pnpm add express-yup-middleware","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency for defining validation schemas.","package":"yup","optional":false}],"imports":[{"note":"Named export, not default. ESM import.","wrong":"import expressYupMiddleware from 'express-yup-middleware'","symbol":"expressYupMiddleware","correct":"import { expressYupMiddleware } from 'express-yup-middleware'"},{"note":"TypeScript interface for schema validator objects.","symbol":"ExpressYupMiddlewareInterface","correct":"import { ExpressYupMiddlewareInterface } from 'express-yup-middleware'"},{"note":"CommonJS destructured require.","wrong":"const expressYupMiddleware = require('express-yup-middleware')","symbol":"expressYupMiddleware (CommonJS)","correct":"const { expressYupMiddleware } = require('express-yup-middleware')"}],"quickstart":{"code":"import express from 'express';\nimport { expressYupMiddleware } from 'express-yup-middleware';\nimport * as Yup from 'yup';\n\nconst app = express();\napp.use(express.json());\n\nconst schemaValidator = {\n  schema: {\n    body: {\n      yupSchema: Yup.object().shape({\n        name: Yup.string().required('name-required'),\n      }),\n    },\n  },\n  errorMessages: {\n    'name-required': {\n      key: 'name-required',\n      message: 'Name is required.',\n    },\n  },\n};\n\napp.post('/test', expressYupMiddleware({ schemaValidator }), (req, res) => {\n  res.json({ message: 'Success' });\n});\n\napp.listen(3000);","lang":"typescript","description":"Basic Express route with body validation using Yup schema and custom error messages."},"warnings":[{"fix":"Ensure `schemaValidator` includes at least one of `body`, `query`, `params` inside `schema`.","message":"The `schemaValidator` object must have `schema` at the top level with `body`, `query`, or `params` properties; missing them will skip validation without error.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Use the same string passed to Yup's validation message as the key in `errorMessages`.","message":"Error messages object keys must exactly match the custom message strings used in Yup's `.required()` etc. (e.g., 'name-required') – not the property path.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Access `this.options.context` in Yup `.test()` to get the request payload.","message":"Cross-validation via `this.options.context` requires the request object to be passed; the middleware provides `req` in context automatically.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use Yup v1.x and import as `import * as Yup from 'yup'`.","message":"Yup v0.x vs v1.x: In Yup v1, `.shape()` may require different import path. express-yup-middleware 2.x supports Yup v1.","severity":"deprecated","affected_versions":"2.x"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run `npm install express-yup-middleware` and use correct import: `import { expressYupMiddleware } from 'express-yup-middleware'`.","cause":"Package not installed or wrong import path.","error":"Cannot find module 'express-yup-middleware'"},{"fix":"Provide `schema` with at least one key (`body`, `query`, `params`) as shown in docs.","cause":"Missing `schema` property in the validator object.","error":"TypeError: schemaValidator.schema is undefined"},{"fix":"Ensure request body includes the required field defined in schema.","cause":"Yup schema property is required and missing.","error":"ValidationError: testBodyProperty is required"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}