Webpack Dev Server不接受同一端点的多个请求方法-POST,PATCH,DELETE

时间:2019-08-26 07:42:29

标签: javascript webpack webpack-dev-server

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

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

1 个答案:

答案 0 :(得分:0)

如果您要创建一个基于不同方法(POSTPATCHDELETE)发送不同响应的命名API,则需要创建多个路由来实现。

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. {{1}中的req,在post中有一些data,然后创建资源。
  2. req.body中的reqdelete中有一些id,然后删除资源。
  3. 等...

所以我的建议是,如果您需要生成处理多个req.query并根据方法处理不同的API,那么您需要使用多个具有相同名称的路由,在我的实例中,路由名称{{ 1}}将用于HTTP Methods/ticket

最佳做法

create/update/delete