您可以通过使用在路由验证器函数中设置的错误消息对象或字符串来显示自定义错误消息。
例如,给定以下的路由验证器:
Route.get('/users/:id', async ({ params }) => {
await validator.validate({ id: params.id }, { id: 'required' }, {
'id.required': '用户 ID 不能为空'
})
// ...
})
如果在访问 /users
端点时没有提供 id 参数,则默认错误消息“id is required”将会被抛出。但是,您可以通过设置自定义错误消息来覆盖默认错误消息,因为是给定的消息对象中的主键。
例如,如果要显示“用户 ID 不能为空”,则代码如下:
Route.get('/users/:id', async ({ params }) => {
await validator.validate({ id: params.id }, { id: 'required' }, {
'id.required': '用户 ID 不能为空'
})
// ...
}).middleware(['validator'])
然后,如果在访问 /users
端点时没有传递 id 参数,将会显示自定义错误消息“用户 ID 不能为空”。
请注意,如果您使用的是早期版本的 Adonis(v4.1),由于路由验证器函数会返回 Promise,因此您需要像以下示例代码一样使用 try/catch 语句捕获错误:
Route.get('/users/:id', async ({ params }) => {
try {
await validator.validate({ id: params.id }, { id: 'required' }, {
'id.required': '用户 ID 不能为空'
})
// ...
} catch (error) {
throw new Error(error)
}
}).middleware(['validator'])