最好是有一个单独的函数来处理同一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是否提供了帮助函数来确定请求类型?到目前为止,我确定req是否为POST的方法需要下划线:
if (_.size(req.body) == 0)
答案 0 :(得分:11)
没有一般规则,最好的方法取决于您正在处理的案例。我想如果你想要一个接受POST和GET请求的api端点,你应该像这样使用express函数all():
app.all('/api/profilepic', api.get_profilepic);
当处理函数不相同时,你应该为POST和GET使用单独的端点。
有关详细信息,请参阅: http://expressjs.com/en/guide/routing.html
答案 1 :(得分:7)
最佳做法是分开关注;因此,您应该有单独的函数来处理每个HTTP谓词。这使代码更易于维护。