微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – 在使用nodejs和express创建的REST API中设置响应状态和JSON内容的正确方法

我正在使用Nodejs和通过构建一个小的休息API表达。我的问题是,什么是良好的做法/最好的方式来设置代码状态,以及响应数据?

让我用一点代码解释(我不会把节点和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];
  }
};

下面的代码完美地工作,当与Postman发送请求时,我得到以下结果:

正如你可以看到,状态显示200,这是确定。但这是最好的方法吗?是否有一种情况,我应该自己设置状态,以及返回的JSON?还是总是由快速处理?

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

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

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

欢迎了解更多关于此主题的资源/建议。

解决方法

Express API参考涵盖了这种情况: http://expressjs.com/4x/api.html#res.send

简而言之,你只需要在调用json或send之前调用status方法

res.status(500).send({ error: "boo:(" });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐