2014-03-12 35 views
1

我知道我可以使用socket.io调用sails的REST API。然后回复我的回复。以下是一个简单的方法来做到这一点Sailsjs socketio http状态

socket.get("/", function (response) { console.log(response); }) 

但我也希望http状态码一起回应如何我可以得到那?

回答

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'})的状态,您将无法在客户端上检索它。

更新

在帆v0.10.x,使用new Sails socket client library,请求方法(io.socket.getio.socket.post等)有接受参数回调:第一个是响应主体(相当于到前一个客户端库版本中的响应),第二个是扩展的响应对象,其中包含状态码,头文件等。