我知道我可以使用socket.io调用sails的REST API。并回复我的回应。以下是一种简单的方法
socket.get("/", function (response) { console.log(response); })
但是我也想要http状态代码以及如何获得它的响应?
答案 0 :(得分:2)
如果您正在使用API蓝图,则响应将在发生错误时返回状态代码。例如,如果存在常规服务器错误,您将返回:
{status: 500}
否则,您将在响应中获取数据,并且您可以假设状态为200.
如果您正在使用自定义控制器操作,那么您可以使用任何默认响应(例如res.serverError()
,res.forbidden()
等)发回状态代码,或者您可以自己设置一个:
myAction: function (req, res) {
return res.forbidden(); // Will send {status: 403}
// OR
return res.json({status:400, error: 'Bad request!'})
}
但是,如果您只是使用res.json(500, {error: 'someError'})
发送状态,则无法在客户端上检索该状态。
<强>更新强>
在Sails v0.10.x上,使用new Sails socket client library,请求方法(io.socket.get
,io.socket.post
等)具有接受两个参数的回调:第一个是响应主体(相当于先前客户端库版本中的响应),第二个是扩展的响应对象,包括状态代码,标题等。