在使用 Nodejs 和 Express 制作的 REST API 中设置响应状态和 JSON 内容的正确方法

2024-02-11

我正在通过构建一个小型的 REST API 来使用 Nodejs 和 Express。我的问题是,设置代码状态以及响应数据的最佳实践/最佳方法是什么?

让我用一点代码来解释一下(我不会放置启动服务器所需的节点和表达代码,只放置所涉及的路由器方法):

router.get('/users/:id', function(req, res, next) {
  var user = users.getUserById(req.params.id);
  res.json(user);
});


exports.getUserById = function(id) {
  for (var i = 0; i < users.length; i++) {
    if (users[i].id == id) return users[i];
  }
};

The code below works perfectly, and when sending a request with Postman, I get the following result: enter image description here

可以看到,状态显示为200,表示正常。但这是最好的方法吗?是否存在我必须自己设置状态以及返回的 JSON 的情况?还是总是通过快递处理?

例如,我只是做了一个快速测试,并稍微修改了上面的 get 方法:

router.get('/users/:id', function(req, res, next) {
  var user = users.getUserById(req.params.id);
  if (user == null || user == 'undefined') {
    res.status(404);
  }
  res.json(user);
});

如您所见,如果在数组中找不到该用户,我将设置状态 404。

我们非常欢迎您提供更多有关此主题的资源/建议。


Express API 参考涵盖了这种情况。

See status http://expressjs.com/en/4x/api.html#res.status and send http://expressjs.com/en/4x/api.html#res.send.

简而言之,您只需调用status调用之前的方法json or send:

res.status(500).send({ error: "boo:(" });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在使用 Nodejs 和 Express 制作的 REST API 中设置响应状态和 JSON 内容的正确方法 的相关文章

随机推荐