【问题标题】:Adonis.js api delete route is not workingAdonis.js api 删除路由不起作用
【发布时间】:2021-05-17 00:51:16
【问题描述】:

我尝试到达特定路线:

http://127.0.0.1:3333/store/products?productId=4

但是服务器给了我这个错误:

"message": "E_ROUTE_NOT_FOUND: Cannot DELETE:/store/products",

"stack": "HttpException: E_ROUTE_NOT_FOUND: Cannot PATCH:/store/products\n   

【问题讨论】:

    标签: adonis.js adonisjs-ace


    【解决方案1】:

    除了@crbast 提出的几点: 您的代码似乎使用了 HTTP PATCH 方法 (https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PATCH) 而不是您期望的 HTTP DELETE

    【讨论】:

      【解决方案2】:

      您没有点击正确的网址并且您的route 是错误的。

      route.js 的正确网址是:

      http://127.0.0.1:3333/store/products/4
                                           ^- Product id
      

      还有route

      Route.delete('/products/:productId', 'ProductsController.delete')
      //                      ^- use : for url parameter
      

      路由说明

      Body dataurl parameters 完全不同。

      请阅读:What is the difference between URL parameters and query strings?

      身体数据

      请求正文 (json)。

      文档:https://preview.adonisjs.com/guides/http/form-submissions#reading-form-data

      示例网址:

      http://127.0.0.1:3333/products?name=hello
      

      路线示例:

      Route.post('/products', 'MyController.myFunction')
      

      控制器:

      public async myFunction ({ request }: HttpContextContract) {
        const data = request.only(['name'])
        // ...
      }
      

      网址参数

      指定动态url参数。

      文档:https://preview.adonisjs.com/guides/http/routing#dynamic-urls

      示例网址:

      http://127.0.0.1:3333/products/1
      

      路线示例:

      Route.post('/products/:id', 'MyController.myFunction')
      

      控制器:

      public async myFunction ({ params }: HttpContextContract) {
        const id = params.id
        // ...
      }
      

      【讨论】:

        猜你喜欢
        • 2019-12-27
        • 1970-01-01
        • 1970-01-01
        • 2019-08-28
        • 1970-01-01
        • 2018-10-10
        • 1970-01-01
        • 2019-12-15
        • 2018-08-29
        相关资源
        最近更新 更多