Node.js Expressjs一个处理GET和POST的函数

Node.js Expressjs一个处理GET和POST的函数,node.js,express,connect,Node.js,Express,Connect,最好使用单独的函数来处理同一API端点的GET和POST请求,还是将它们组合成一个函数,根据req.body或req.params的存在进行区分 即 或: 如果是后者,expressjs是否提供帮助函数来确定请求类型?到目前为止,我确定req是否为POST的方法需要下划线: if (_.size(req.body) == 0) 最佳做法是分离关注点;因此,您应该有单独的函数来处理每个HTTP谓词。这使得代码更易于维护。没有一般规则,最佳方法取决于您正在处理的案例。我认为,如果您希望api端点能

最好使用单独的函数来处理同一API端点的GET和POST请求,还是将它们组合成一个函数,根据req.body或req.params的存在进行区分

或:

如果是后者,expressjs是否提供帮助函数来确定请求类型?到目前为止,我确定req是否为POST的方法需要下划线:

if (_.size(req.body) == 0)

最佳做法是分离关注点;因此,您应该有单独的函数来处理每个HTTP谓词。这使得代码更易于维护。

没有一般规则,最佳方法取决于您正在处理的案例。我认为,如果您希望api端点能够同时接受POST和GET请求,那么应该像下面这样使用express function all():

app.all('/api/profilepic',  api.get_profilepic);
当处理函数不同时,应该为POST和GET使用单独的端点

有关更多详细信息,请参阅:

从函数名判断,它们执行不同的任务。所以我会把他们分开。FWIW,您可以检查
req.method
以查看它是否包含
GET
POST
(甚至还有其他方法)。还有
app.all()
来处理这两个(以及更多)我尝试使用“use”但不起作用,即“all”
if (_.size(req.body) == 0)
app.all('/api/profilepic',  api.get_profilepic);