{"_id":"@comely-fox/express-joi","_rev":"2-6d9e25c8815bf7cc5f58308332069e5b","name":"@comely-fox/express-joi","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@comely-fox/express-joi","version":"1.0.0","description":"基于joi的express的一个处理请求提交参数或表单数据进行的验证处理的中间件","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["joi","validata","form validata","body","query","params"],"author":{"name":"fox"},"license":"ISC","dependencies":{"joi":"^17.4.2"},"_id":"@comely-fox/express-joi@1.0.0","_nodeVersion":"16.11.1","_npmVersion":"8.0.0","dist":{"integrity":"sha512-rFwqbAuVslpxSpUTJoL60H8xwQkbVSA2se2vbvAxBs3L8AYr7W2yJ7YBSsoQogBrFwqdIgWejNpgFyO52M3ypg==","shasum":"02d44795c748f3dd65a0749407217df09804451b","tarball":"https://registry.npmjs.org/@comely-fox/express-joi/-/express-joi-1.0.0.tgz","fileCount":3,"unpackedSize":2180,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXyb2ZLkfLiRlnJvhAek0JRoHVb9uu+InZnLz7//uwIAIhAK68H3Pfqj4F5K0vSNDJDDlJeiW4UJQ8hq6IX02bJDUN"}]},"_npmUser":{"name":"comely-fox","email":"devchendu@foxmail.com"},"directories":{},"maintainers":[{"name":"comely-fox","email":"devchendu@foxmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-joi_1.0.0_1637246175663_0.10817687509860252"},"_hasShrinkwrap":false},"1.0.1":{"name":"@comely-fox/express-joi","version":"1.0.1","description":"基于joi的express的一个处理请求提交参数或表单数据进行的验证处理的中间件","main":"index.js","keywords":["joi","validata","form validata","body","query","params"],"author":{"name":"fox"},"license":"ISC","dependencies":{"joi":"^17.4.2"},"_id":"@comely-fox/express-joi@1.0.1","_nodeVersion":"16.11.1","_npmVersion":"8.0.0","dist":{"integrity":"sha512-rumwWDI386kONzkR9FFsZl5MzHP0h7KaJOp4adNlF5cZQ6HKkoLMpCEMd3cV1sEExWFN4H9zfaY51sYQ2N2Ryw==","shasum":"d14de70fd7df13259c81c689679d100d884d99ec","tarball":"https://registry.npmjs.org/@comely-fox/express-joi/-/express-joi-1.0.1.tgz","fileCount":3,"unpackedSize":2168,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhtWzHCRA9TVsSAnZWagAAWx4QAI5RY+1PwrvvpURWSJ2W\nXsYxbKONGj+Tg/i+BjI4bBi3KpQSJC4u4IDHxQUrPc4XQj7100JOKaU0rqOO\nNK9Yfy2a1KxWtPDWPKFCSRtxX8otXs7ho5Xh21nAWT61M5ZgfBuporfAQ2LE\nBwQEesPf3nQ72vKfJvjHdGX4hYHmCCy8R9UOoQHvF+HuY5TAq9US5tKOpVD7\nO27UkL8973ppKhzaw/b6qwUKj53afmyUfOzGeCiYYL7q2EqbXrpPMvYGbFiV\nczUWrKpajHvkla4s1jxwfElIXCBcY6OZz85EBlNLkGv8oa5M9lzn3KcOpOyg\nHmLtHMCbBL5gqCP5JLeI/54MPuKm/me37shAm7iRLbwS/+ANCbwNcp7rIFOL\nsfhkUhqs27HmZNGLvbdvgyxd2MgQv1N6VRjrP/EpiWGQfseJtggLrovk13qc\n9w6Vm4Alp10ummalsjp0nfd1gJznk4QdfX5lXwwnHmfDB9OMlIfyeZuM31gZ\n2H9EKOVU2IbSeD2t0QRRpVkO+ThQ6ERx1rymlBvtZ3nbmLeIJdX/7HFac6eG\ntNYAst9GOJ/45RFRJAOEWtHOLyVxgx6jCVGlhWtKb4JfdV4WlM5nJoh1boUf\nOqf9zMCilE71HLM+PXdIeGQ/6gBicGHeh0jHaihYm1ffxXXdEWYt/ger+Hw/\ncR1t\r\n=v1JB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFffDqdUecIb7P5hlzJNOSVKgeQ2Yfsns+AxBKwDDrkJAiBO9lIyaDymZFDgxnnrKBufNLwWeDfDFBlT/AlTG2PTAg=="}]},"_npmUser":{"name":"comely-fox","email":"devchendu@foxmail.com"},"directories":{},"maintainers":[{"name":"comely-fox","email":"devchendu@foxmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-joi_1.0.1_1639279815199_0.8743037087481962"},"_hasShrinkwrap":false}},"time":{"created":"2021-11-18T14:36:15.604Z","1.0.0":"2021-11-18T14:36:15.810Z","modified":"2022-04-05T00:24:01.004Z","1.0.1":"2021-12-12T03:30:15.369Z"},"maintainers":[{"name":"comely-fox","email":"devchendu@foxmail.com"}],"description":"基于joi的express的一个处理请求提交参数或表单数据进行的验证处理的中间件","keywords":["joi","validata","form validata","body","query","params"],"author":{"name":"fox"},"license":"ISC","readme":"> 用于验证 params、body、query 的客户端请求字段\r\n\r\n## 安装\r\n\r\n```\r\nnpm i @comely-fox/express-joi\r\n```\r\n\r\n## 1. 导入 joi @fox/express-joi\r\n\r\n```\r\nconst Joi = require('joi')\r\nconst expressJoi = require('@fox/express-joi)\r\n```\r\n\r\n## 2. 定义 schema 规则\r\n\r\n```\r\nconst schemas = {\r\n    params:{\r\n      username: joi.string().min(2).max(12).alphanum().required()\r\n      password: joi.string().pattern(/^[a-zA-Z0-9_]{6,16}$/).required()\r\n    }\r\n}\r\n```\r\n\r\n> joi 规则查看：[joi](https://joi.dev/api/?v=17.4.2#introduction)\r\n\r\n## 3. 在路由中使用 express-joi 中间件\r\n\r\n```\r\napp.get('/test', expressJoi(schemas), function(req,res){ // ... })\r\n\r\n```\r\n\r\n## 4. 定义一个错误处理中间件，用于捕获验证失败后的错误\r\n\r\n```\r\napp.use(function(err, req, res, next) {\r\n\r\n  if(err instanceOf Joi.ValidationError){\r\n\r\n    res.send({\r\n      status: 400,\r\n      statusText: err.message\r\n    })\r\n  }\r\n\r\n  // 其他未知错误\r\n\r\n  res.send({\r\n    status: 500,\r\n    statusText: '未知错误'\r\n  })\r\n\r\n})\r\n```\r\n\r\n## 许可\r\n\r\nISC\r\n","readmeFilename":"README.md"}