Sailsjs socketio http状态

时间:2014-03-12 19:15:16

标签: express socket.io sails.js

我知道我可以使用socket.io调用sails的REST API。并回复我的回应。以下是一种简单的方法

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

但是我也想要http状态代码以及如何获得它的响应?

1 个答案:

答案 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.getio.socket.post等)具有接受两个参数的回调:第一个是响应主体(相当于先前客户端库版本中的响应),第二个是扩展的响应对象,包括状态代码,标题等。