2014-03-12 65 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等)有接受參數回調:第一個是響應主體(相當於到前一個客戶端庫版本中的響應),第二個是擴展的響應對象,其中包含狀態碼,頭文件等。