特定のルートにヒットしようとしました:
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
特定のルートにヒットしようとしました:
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
正しい 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 パラメータとクエリ文字列の違いは何ですか?
リクエストボディ (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 パラメータを指定します。
ドキュメント : 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
// ...
}