Adonis 入门 —— 路由

get 请求

Route.get('/posts', () => 'Get has been created.')
post 请求
Route.post('/posts', () => 'Post has been created.')
create 创建,这里有个重复路由的问题,需要放在posts/:id 的前面
Route.get('/posts/create', 'PostController.create')
请求指定数据,如果不希望强制传入id 则可以使用 /posts/:id?
Route.get('/posts/:id', ({ params }) => {
    return`You're watching post ${params.id}`
})
patch 更新
Route.patch('/posts/:id', ({ params }) => {
    return`Post ${params.id} has been updated.`
})
delete 删除
Route.delete('/posts/:id', ({ params }) => { 
    return`Post ${params.id} has been removed.` 
})

edit 编辑

Route.get('/posts/:id/edit', 'PostController.edit')

资源路由

// 因为以上请求方式非常常见,所以可以使用资源路由来达到同样的效果
Route
    .resource('posts', 'PostController')
    // 排除请求类型
    // .except(['index'])
    // .only 指定可用的请求
    // .only(['index', 'show'])
    // .apiOnly()

路由命名

Route
    .get('/user---name', () => 'List of users.')
    .as('users.index')

路由格式

Route.get('/users', ({ request }) => {
    switch (request.format()) {
        case 'json':
            return [
                { name: 'york'},
                { name: 'leeggco'}
            ]
        default:
            return `
                - york
                - leeggco
            `
    }
})
.formats(['json'])
// 强制格式
// .formats(['json', 'html'], true)
// http://127.0.0.1:3333/users.json
// http://127.0.0.1:3333/users

路由群组

Route
    .group(() => {
        Route.get('users', () => 'Manage users')
        Route.get('posts', () => 'Manage posts')
    })
    .prefix('admin')
// http://127.0.0.1:3333/admin/users
// http://127.0.0.1:3333/admin/posts

单页应用的路由

Route.any('*', ({ view }) => view.render('welcome'))
// http://127.0.0.1:3333/any

完整代码

说点什么

avatar
  Subscribe  
提醒