res.serverError()
此方法用於將 500 ("伺服器錯誤") 回應傳送回用戶端,表示發生了某種伺服器錯誤 (即,錯誤並非來自請求用戶代理程式的錯誤)。
return res.serverError(err);
或
return res.serverError();
與其他內建的自訂回應模組一樣,此方法的行為是可以自訂的。
預設情況下,它的運作方式如下:
回應的狀態碼將設定為 500。
如果請求「期望 JSON」(例如,請求源自 AJAX、WebSockets 或 REST 用戶端,如 cURL),Sails 將以 JSON 格式傳送提供的錯誤 data
。如果未提供 data
,則會傳送預設的回應主體 (字串 "Internal Server Error"
)。
如果請求不「期望 JSON」(例如,在網頁瀏覽器中輸入的 URL),Sails 將嘗試提供位於 views/500.ejs
的視圖(假設使用預設的 EJS 視圖引擎)。如果找不到此視圖,或嘗試提供時發生錯誤,則會傳送預設的回應主體,其中包含字串 "Internal Server Error"
。
return res.serverError('Salesforce could not be reached');
- 此方法是終端方法,表示它通常是您的應用程式針對給定請求應執行的最後一行程式碼(因此在整個文件中建議使用
return
)。
res.serverError()
(與其他使用者層級的回應方法一樣)可以被覆寫或修改。它會執行在api/responses/serverError.js
中定義的回應方法。如果您的應用程式中不存在serverError.js
回應方法,Sails 將使用預設行為。
- 如果應用程式在「生產」環境中執行(即
process.env.NODE_ENV === 'production'
),指定的data
將從 JSON 回應和視圖本地變數中排除。