2014-01-25 18 views

回答

2

你不需要它在全部地方,真的。

res是響應對象和它纔有意義,在控制器,因爲只有控制器處理請求的處理和響應渲染。

你想使用模型,服務res.render?也許這是因爲您認爲您的所有代碼總是處於we_have_request_and_user_is_waiting_for_response狀態。 嗯,這不是真的:模型方法和服務可以從sails控制檯,或從後臺工作人員或代碼調用,而不是按計劃運行。在這些情況下,我們根本沒有res對象。

控制器是專門設計用來包含用戶操作響應邏輯。所以,你應該把這個邏輯放在控制器中。 MVC

+0

我需要在模型的「afterCreate」的方法來訪問res.render,這樣我可以發送電子郵件。 –

1

技術上,上一位發言者是有點權:還有一個原因res僅存控制器。例如,如果它是一個CLI應用程序,HTTP中沒有請求/響應,意味着什麼呢?也就是說,如果您只需爲某個目的渲染某個HTML,則可以始終使用全局Express的渲染器,該渲染器不需要響應即可呈現:可通過sails.express.app.render訪問,可參見Express' documentation PARAMS。

+1

這將在v0.9.x中運行,但要注意本地化方法將不可用。但是'sails.express'在未來版本的Sails中將不可用。但是,全局視圖渲染功能可能在v0.10中可用。 – sgress454

3

在帆v0.10.4有

sails.renderView(viewPath, options, callback); 

而且,呈現電子郵件時,你可能並不需要使用的佈局。因此調用sails.renderView之前,加

options.layout = false; 
+0

我覺得這應該是被接受的答案。這解決了問題,而不需要斷言OP重新考慮意圖。 –