Adonis.js api 删除路由无效
Adonis.js api delete route is not working
我试着打了一个特定的路线:
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
打错了
你的route.js
右边的url是:
http://127.0.0.1:3333/store/products/4
^- Product id
和 route
:
Route.delete('/products/:productId', 'ProductsController.delete')
// ^- use : for url parameter
路由说明
Body data & url parameters完全不同。
请阅读:What is the difference between URL parameters and query strings?
Body数据
请求 body (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
// ...
}
除了@crbast 提出的观点:
您的代码似乎命中了 HTTP PATCH 方法 (https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PATCH) 而不是您期望的 HTTP DELETE
我试着打了一个特定的路线:
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
打错了
你的route.js
右边的url是:
http://127.0.0.1:3333/store/products/4
^- Product id
和 route
:
Route.delete('/products/:productId', 'ProductsController.delete')
// ^- use : for url parameter
路由说明
Body data & url parameters完全不同。
请阅读:What is the difference between URL parameters and query strings?
Body数据
请求 body (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
// ...
}
除了@crbast 提出的观点: 您的代码似乎命中了 HTTP PATCH 方法 (https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PATCH) 而不是您期望的 HTTP DELETE