我正在尝试使Webpack Dev Server为不同的方法提供不同的响应:POST,PATCH和DELETE。 似乎服务器仅接受POST请求。当尝试对PATCH和DELETE使用相同的终结点时,服务器返回404。
我正在寻找有关如何正确处理这种情况的建议。我正在使用服务器作为数据库的代理,并使用它来提供模拟数据。
答案 0 :(得分:0)
如果您要创建一个基于不同方法(POST
,PATCH
,DELETE
)发送不同响应的命名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
可用于(POST
,PATCH
,DELETE
)的不同方法中。这里的response
将根据method
进行更改,它可以帮助您使代码易于管理和调试。
您也可以使用.all
这样实现
最差实践
userRouter.all('/ticket', userCtr.ticketOperations); // can be post/patch/delete anything
在这种情况下,您需要在函数中添加更多条件,例如
req
,在post
中有一些data
,然后创建资源。req.body
中的req
在delete
中有一些id
,然后删除资源。所以我的建议是,如果您需要生成处理多个req.query
并根据方法处理不同的API,那么您需要使用多个具有相同名称的路由,在我的实例中,路由名称{{ 1}}将用于HTTP Methods
和/ticket
。
最佳做法
create/update/delete