Webpack 开发服务器不接受同一端点的多个请求方法 - 发布、修补、删除



我正在尝试使 Webpack Dev Server 为不同的方法提供不同的响应:POST、PATCH 和 DELETE。 似乎服务器只接受 POST 请求。尝试对 PATCH 和 DELETE 使用相同的端点时,服务器返回 404。

我正在寻找有关如何正确处理这种情况的建议。我正在使用服务器作为数据库的代理,并且我正在使用它提供模拟数据。

如果你想创建一个命名的API,它根据不同的方法(POSTPATCHDELETE)发送不同的响应,你需要创建多个路由来实现这一点。

const express = require('express');
const userCtr = require('./userController');
const userRouter = express.Router();
userRouter.post('/ticket', userCtr.createTicket); // create a ticket
userRouter.patch('/ticket', userCtr.updateTicket); // update a ticket
userRouter.delete('/ticket', userCtr.deleteTicket); // delete a ticket
module.exports = userRouter;

解释在上面的代码中,路由/ticket可以用于不同的方法,即(POSTPATCHDELETE)。这里response会根据method而改变,它可以帮助你使你的代码易于管理且易于调试。

您也可以通过这样的.all来实现这一点

最差做法

userRouter.all('/ticket', userCtr.ticketOperations); // can be post/patch/delete anything

在这种情况下,您需要在函数中加入更多条件,例如

  1. reqpost中,并在req.body中有一些data,然后创建资源。
  2. reqdelete有一些idreq.query然后是资源。
  3. 等。。。

所以我的建议是,如果您需要生成这样的 API,它处理多个HTTP Methods并根据方法处理不同的方法,那么您需要使用多个路由以及相同的名称,在我的实例中,路由名称/ticket将用于create/update/deleteticket

最佳实践

userRouter.post('/ticket', userCtr.createTicket); // create a ticket
userRouter.patch('/ticket', userCtr.updateTicket); // update a ticket
userRouter.delete('/ticket', userCtr.deleteTicket); // delete a ticket

最新更新