在AdonisJS中,资源路由上的验证器可以用来验证请求的数据是否符合要求。如果你发现验证器不起作用,可能是由于以下原因:
Resource.with().validator()
方法来指定验证器。例如:Route.resource('users', 'UserController')
.apiOnly()
.validator(new Map([[['users.store'], ['UserStore']]]))
indicative
库进行数据验证。你可以通过运行以下命令来安装:npm install indicative
UserStore.js
应该像这样导出验证规则:'use strict'
class UserStore {
get rules () {
return {
username: 'required|unique:users',
email: 'required|email|unique:users',
password: 'required|min:6'
}
}
}
module.exports = UserStore
validate
方法来执行验证。在控制器的方法中,你可以使用validate
方法来执行验证。例如:async store ({ request }) {
const data = request.only(['username', 'email', 'password'])
// 执行验证
await validate(data, UserStore.rules)
// 执行其他操作
// ...
}
通过以上步骤,你应该能够解决AdonisJS中资源路由上验证器不起作用的问题。记得在解决问题后重新启动你的应用程序。如果问题仍然存在,可以检查你的验证规则是否正确,并在控制器中正确调用验证方法。