0

特定のルートにヒットしようとしました:

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   
4

2 に答える 2

0

正しい URL にアクセスしていませんroute。間違っています。

あなたの正しいURLroute.jsは:

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

そしてroute

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

ルーティングの説明

本文データURL パラメータはまったく異なります。

読んでください: URL パラメータとクエリ文字列の違いは何ですか?

ボディデータ

リクエストボディ (json)。

ドキュメント : https://preview.adonisjs.com/guides/http/form-submissions#reading-form-data

URL の例:

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 パラメータ

動的 URL パラメータを指定します。

ドキュメント : https://preview.adonisjs.com/guides/http/routing#dynamic-urls

URL の例:

http://127.0.0.1:3333/products/1

ルート例:

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

コントローラー:

public async myFunction ({ params }: HttpContextContract) {
  const id = params.id
  // ...
}
于 2021-02-13T15:52:00.960 に答える