簡體   English   中英

SailsJS:如何從任何地方訪問res.render函數

[英]SailsJS: how to access the res.render function from anywhere

我只需要在某些地方使用res.render函數,但不會傳遞給我正在使用的回調。 渲染函數的全局版本是否存在,或者是否有其他方法可以訪問它?

在Sails v0.10.4中,有

sails.renderView(viewPath, options, callback);

另外,在呈現電子郵件時,您可能不需要使用布局。 因此,在調用sails.renderView之前,添加

options.layout = false;

實際上,您並非在所有地方需要它。

res是一個響應對象,僅在控制器中才有意義,因為只有控制器處理請求處理和響應呈現。

您是否要使用模型,服務中的res.render 可能是因為您認為所有代碼始終處於we_have_request_and_user_is_waiting_for_response狀態。 嗯,這不是真的:可以從Sails控制台,后台工作人員或代碼中調用模型方法和服務,而不是按計划運行。 在這些情況下,我們根本沒有res對象。

控制器專門設計為包含用戶動作響應邏輯。 因此,您應該將該邏輯放置在控制器中。 MVC

從技術上講,以前的發言者在某種程度上是對的:有一個原因就是res僅存在於控制器中。 例如,如果它是一個CLI應用程序,並且根本沒有HTTP含義的請求/響應,該怎么辦?

就是說,如果您只需要出於某些目的渲染某些HTML,則可以始終使用全局Express的渲染器,該渲染器無需顯示響應:可以通過sails.express.app.render訪問,請參見Express'方法參數的文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM