NodeJS Joi自定义验证错误消息不起作用

问题描述

我正在构建NodeJS 12应用程序,并使用@ hapi / joi模块来验证API端点。

"@hapi/joi": "^17.1.1",

验证是对GET请求的URL查询。 “标题”必须是与“有效”值之一匹配的字符串。验证工作正常,但是错误消息必须是自定义错误消息。这是因为有效值列表不应在错误消息中显示,这是错误消息提供的内容错误消息必须被覆盖。

我尝试完全从the official documentation on the .error property复制示例,但是出现TypeError。

example.test = {
  query: {
    title: Joi.string().valid('test1','test2','test3').error((errors) => new Error("Invalid parameters"))
  }
}

TypeError: Cannot read property '0' of undefined\n    at /home/node/app/node_modules/express-joi-validate/lib/validate.js:28:34\n    at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/node/app/node_modules/express/lib/router/route.js:137:13)\n    at Route.dispatch (/home/node/app/node_modules/express/lib/router/route.js:112:3)\n    at Layer.handle [as handle_request] (/home/node/app/node_modules/express/lib/router/layer.js:95:5)\n    at /home/node/app/node_modules/express/lib/router/index.js:281:22\n    at Function.process_params (/home/node/app/node_modules/express/lib/router/index.js:335:12)\n    at next (/home/node/app/node_modules/express/lib/router/index.js:275:10)\n    at Function.handle (/home/node/app/node_modules/express/lib/router/index.js:174:3)\n    at router (/home/node/app/node_modules/express/lib/router/index.js:47:12)"

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)