美文网首页Node.js全栈之巅
AdonisJs v4学习笔记 3 - 路由

AdonisJs v4学习笔记 3 - 路由

作者: 全栈之巅Johnny | 来源:发表于2017-10-11 01:16 被阅读25次

    官网文档

    路由其实基本上就是Laravel那套东西,跟Koa2也很像,一看就明白了。默认的路由文件在/start/routes.js里面,代码很少:

    const Route = use('Route')
    
    Route.on('/').render('welcome')
    

    这里的use是AdonisJs带的一个全局函数,类似原生的require但又不是完整路径。其实是类似于PHP的use语法,更效仿了LaravelFacades设计模式。use('Route')这里的Route其实只是一个简短的别名,对应AdonisJs Framework中的路由类。

    上面的路由应该很好理解,其实就是『访问路径/时,渲染welcome模板』,模板文件是/resources/views/welcome.edge

    除了上面直接渲染模板的路由,基本的GET/POST/PUT/DELETE等这些请求方法当然也是支持的,下面是更多的例子:

    //直接返回纯文字
    Route.get('/', () => 'Hello world')
    
    // 放心使用async吧
    Route.post('/users', async () => {
    })
    Route.put('/users/1', async () => {
    })
    Route.delete('/', async () => {
    })
    
    // 甚至同时匹配多种请求方法到同一路由
    Route.route('/', async () => {
    }, ['GET', 'POST'])
    
    // 带有URL参数的路由
    // 通过参数用模型查询数据库记录
    // 返回一个JSON对象
    Route.get('posts/:id', async ({ params }) => {
      const post = await Post.find(params.id)
      return post
    })
    
    // 指向一个Controller的某个方法,这个常用。
    // 控制器文件位于`/app/Controllers/Http/UserController.js`
    // 可用`adonis make:controller User`自动生成
    Route.get('/api/v1/users', 'UserController.index')
    
    // 需要已登录用户才能访问的RESTful路由
    // url和控制器方法对应关系: https://dev.adonisjs.com/docs/4.0/routing#_route_resources
    Route
      .resource('users', 'UsersController')
      .middleware(['auth'])
    
    // 路由组,这个必须用,有同样URL前缀或中间件需要放到一起的路由用`Route.group`来定义。
    Route
      .group(() => {
        Route.get('users', 'UserController.index')
        Route.post('users', 'UserController.store')
      })
      .prefix('api/v1') // url前缀
    

    相关文章

      网友评论

        本文标题:AdonisJs v4学习笔记 3 - 路由

        本文链接:https://www.haomeiwen.com/subject/mgliyxtx.html