【发布时间】:2015-12-30 02:32:55
【问题描述】:
使用 Joi + failAction 问题进行 Hapi.js 验证。
情况
我们想构建一个“传统”服务器端-仅 使用 Hapi 呈现应用程序。
我试图理解如何避免返回“raw”400
Joi 验证时客户端出错失败:
我们要截取这个“email not allowed to be empty”验证错误,并在html模板中显示回客户端,
而不是简单地返回 400 错误。
@AdriVanHoudt 建议我们应该:
"查看http://hapijs.com/api#route-options下的failAction"
所以我们将failAction: 'log' 添加到/register 路由处理程序中:
{
method: '*',
path: '/register',
config: {
validate: {
payload : register_fields,
failAction: 'log'
}
},
handler: register_handler
}
见代码: server.js
register_handler 是:
function register_handler(request, reply, source, error) {
console.log(request.payload);
console.log(' - - - - - - - - - - - - - - - - - - - - -');
console.log(source)
console.log(' - - - - - - - - - - - - - - - - - - - - -');
console.log(error)
return reply('welcome!');
}
我希望在终端/控制台中看到错误
但是当我尝试console.log handler 时:
- - - - - - - - - - - - - - - - - - - - -
undefined
- - - - - - - - - - - - - - - - - - - - -
undefined
我在 GitHub 上问了这个问题:https://github.com/hapijs/joi/issues/725 但还没有得到好 例子的答案。 如果您有时间提供帮助,请提供完整代码:https://github.com/nelsonic/hapi-validation-question
【问题讨论】:
标签: javascript node.js validation server hapijs