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:(" });

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...