我通过构建一个小的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];
}
};
下面的代码运行良好,当使用Postman发送请求时,我会得到以下结果:
如您所见,状态显示为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。
非常欢迎您提供资源/建议来了解有关此主题的更多信息。
发布于 2014-09-27 03:29:24
发布于 2016-06-04 04:13:59
你可以这样做:
res.status(400).json(json_response);
这会将HTTP状态码设置为400,即使在express 4中也可以使用。
发布于 2016-10-28 20:13:28
我在我的Express.js应用程序中使用了以下代码:
app.get('/', function (req, res) {
res.status(200).json({
message: 'Welcome to the project-name api'
});
});
https://stackoverflow.com/questions/26066785
复制相似问题