在组路由中定义资源路由时,应将资源路由与组路由分开定义。以下是一个示例:
Route.group(() => {
// 定义普通路由
Route.get('/', 'HomeController.index')
// 单独定义资源路由
Route.resource('users', 'UserController')
}).prefix('api/v1')
在上述示例中,我们将普通路由和资源路由分别定义。资源路由被单独定义以确保它们能正常工作。同时,使用 prefix() 方法为整个组路由添加一个前缀。
值得注意的是,Adonis.js 5 中的资源路由与之前版本有所不同。您可以使用以下示例代码检查资源路由的定义是否正确:
class UserController {
index() {
return 'Show all users'
}
store() {
return 'Create a new user'
}
show() {
return 'Show a single user'
}
update() {
return 'Update a user'
}
destroy() {
return 'Delete a user'
}
}
Route.resource('users', 'UserController').apiOnly()
在上述代码中,我们定义了一个 UserController 类并为其添加了资源路由。apiOnly() 方法用于自动生成 RESTful 路由,不包括 index() 和 create()。这种方式简化了路由定义,并且不需要显式地为每个方法分别定义路由。