Expressj的一个函数来处理GET和POST

是否最好有一个单独的函数来处理同一API端点的GET和POST请求,或者将它们合并成一个函数,根据req.body或req.params的存在性来区分?

即。

app.get('/api/profilepic', api.get_profilepic); app.post('/api/profilepic', api.change_profilepic); 

要么:

 app.get('/api/profilepic', api.profilepic); app.post('/api/profilepic', api.profilepic); 

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

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

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

没有一般规则,最好的方法取决于你正在处理的情况。 我想如果你想要一个接受POST和GET请求的api端点结合起来,你应该像这样使用express函数all():

 app.all('/api/profilepic', api.get_profilepic); 

当处理函数不相同时,您应该为POST和GET使用单独的端点。

欲了解更多详情,请参阅: http : //expressjs.com/en/guide/routing.html