{"id":25215387,"url":"https://github.com/muhammadrifat/backend-validation-express","last_synced_at":"2026-05-02T06:43:05.716Z","repository":{"id":165565080,"uuid":"640921130","full_name":"MuhammadRifat/backend-validation-express","owner":"MuhammadRifat","description":"Request data validation middleware using Joi for the backend in express.js.","archived":false,"fork":false,"pushed_at":"2023-05-17T17:39:03.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-10T18:14:20.124Z","etag":null,"topics":["express-validation-middleware","joi-validation","npm-package","request-data-validation"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/backend-validation-express","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MuhammadRifat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-15T12:04:15.000Z","updated_at":"2023-05-15T12:31:28.000Z","dependencies_parsed_at":"2023-12-08T13:15:09.106Z","dependency_job_id":null,"html_url":"https://github.com/MuhammadRifat/backend-validation-express","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuhammadRifat%2Fbackend-validation-express","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuhammadRifat%2Fbackend-validation-express/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuhammadRifat%2Fbackend-validation-express/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuhammadRifat%2Fbackend-validation-express/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MuhammadRifat","download_url":"https://codeload.github.com/MuhammadRifat/backend-validation-express/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247312086,"owners_count":20918341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["express-validation-middleware","joi-validation","npm-package","request-data-validation"],"created_at":"2025-02-10T18:14:26.289Z","updated_at":"2026-05-02T06:43:05.688Z","avatar_url":"https://github.com/MuhammadRifat.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# backend-validation-express\n\n##### Request data validation middleware using Joi for express in backend. This middleware allows you to validate req.body, req.query, req.params, req.headers. Also return the error messages to the better format.\n\n## Installation\n`npm install backend-validation-express`\n\n## Example\n\n##### validation.js\n```js\nconst { validator, Joi } = require(\"backend-validation-express\");\n\nconst bodySchema = Joi.object({\n    name: Joi.string().required(),\n    email: Joi.string().email().required(),\n    password: Joi.string().min(8).required()\n});\n\nconst querySchema = Joi.object({\n    _id: Joi.string().required(),\n    name: Joi.string().required(),\n});\n\nconst paramsSchema = Joi.string().required();\n\nconst bodyValidator = validator({ body: bodySchema });\nconst queryValidator = validator({ query: querySchema });\nconst paramsValidator = validator({ params: paramsSchema });\n\nmodule.exports = { \n    bodyValidator, \n    queryValidator, \n    paramsValidator \n};\n\n```\n\n##### index.js\n```js\nconst express = require(\"express\");\nconst { paramsValidator, queryValidator, bodyValidator } = require(\"./validation\");\n\nconst app = express();\n\napp.use(express.json());\n\napp.post(\"/user\", bodyValidator, (req, res, next) =\u003e {\n    // Here, req.body has been validated.\n\n    return res.status(200).json(req.body);\n});\n\napp.get(\"/user\", queryValidator, (req, res, next) =\u003e {\n    // Here, req.query has been validated.\n\n    return res.status(200).json(req.query);\n});\n\napp.listen(3000, () =\u003e {\n    console.log(\"Server listening on the port 3000\");\n});\n```\n\n### You can add multiple schema in single validator. Example:\n\n\n##### validation.js\n```js\nconst { validator, Joi } = require(\"backend-validation-express\");\n\nconst bodySchema = Joi.object({\n    name: Joi.string().required(),\n    email: Joi.string().email().required(),\n    password: Joi.string().min(8).required(),\n    role: Joi.string()\n});\n\nconst querySchema = Joi.object({\n    _id: Joi.string().required(),\n    role: Joi.string().required(),\n});\n\nconst commonValidator = validator({ body: bodySchema, query: querySchema });\n\nmodule.exports = { commonValidator };\n\n\n```\n\n### Error Messages Format\n\n##### Error message for validating only req.body in single validator\n```sh\n{\n    \"success\": false,\n    \"errors\": {\n        \"body\": {\n            \"name\": \"name is required\",\n            \"email\": \"email is required\",\n            \"password\": \"password is required\"\n        }\n    },\n    \"message\": \"Validation Error!\"\n}\n```\n\n##### Error message for validating req.body \u0026 req.query in single validator\n\n```sh\n{\n    \"success\": false,\n    \"errors\": {\n        \"body\": {\n            \"name\": \"name is required\",\n            \"email\": \"email is required\",\n            \"password\": \"password is required\"\n        },\n        \"query\": {\n            \"_id\": \"_id is required\",\n            \"role\": \"role is required\"\n        }\n    },\n    \"message\": \"Validation Error!\"\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuhammadrifat%2Fbackend-validation-express","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuhammadrifat%2Fbackend-validation-express","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuhammadrifat%2Fbackend-validation-express/lists"}