我想在验证后在我的翡翠视图中显示我的错误消息。
玉
H1 Hello world
#error
p #{JSON.stringify(errorMsg)}
div
form(action="/",method="post")
div Foo
div
input(type="text",name="foo")
div
input(type="submit",name="submit")
这是我的服务器代码...
server.register(Vision,(err)=>{
if(err){console.log(err)}
server.views({
engines:{
jade:Jade
},
path: 'views',
relativeTo: __dirname });
server.route([
{
method:'GET',path:'/',
handler:(request,reply)=>{
reply.view('index');
}
},
{
method:'POST',path:'/',
handler: (request,reply) => {
console.log("POST '/' ");
const err = {}; // check error and set it
reply.view('index',{errorMsg:err});
},
config:{
validate:{
payload: {
foo: Joi.string().required(),
submit:Joi.string().required()
}
}
}
}
]); });
server.start((err)=>{
if(err){console.log(err);} console.log("server started:"+server.info.uri);
});
目标是验证 foo 的存在
当验证启动服务器响应时出现 http 400 错误,这对于 api 来说完全没问题并且是预期的。这甚至在调用处理函数之前发生。
使用视图引擎处理验证错误的最佳方法是什么?
我期待类似的东西(这显然是行不通的)
if(request.error){
reply.view('index',{errorMsg:err});
}
onPreResponse
我还看到了一些处理该事件以在全球范围内捕捉它的答案。他们不是在请求处理程序方法中执行此操作的方法吗?或任何最佳实践技巧?