NodeJS Express.js一个函数来处理GET和POST

a0zr77ik  于 2023-06-05  发布在  Node.js
关注(0)|答案(2)|浏览(151)

是用一个单独的函数来处理同一个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);

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

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

wgmfuz8q1#

没有一般的规则,最好的方法取决于你正在处理的案例。我认为如果你想要一个同时接受POST和GET请求的API端点,你应该像这样使用express函数all():

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

当处理函数不同时,POST和GET应该使用不同的端点。
有关更多详细信息,请参阅:http://expressjs.com/en/guide/routing.html

sdnqo3pr

sdnqo3pr2#

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

相关问题