SailsJS:如何从任何地方访问res.render函数

时间:2014-01-25 23:49:57

标签: javascript node.js sails.js

我只需要在某些地方使用res.render函数,但它不会传递给我正在使用的回调。是不是某个地方是渲染功能的全球版本,还是有另一种方式来访问它?

3 个答案:

答案 0 :(得分:3)

在Sails v0.10.4中有

sails.renderView(viewPath, options, callback);

此外,在渲染电子邮件时,您可能不需要使用布局。所以在致电sails.renderView之前,请添加

options.layout = false;

答案 1 :(得分:2)

你真的不需要在 所有 的地方。

res是一个响应对象,它仅在控制器中有意义,因为只有控制器处理请求处理和响应呈现。

您想使用模特,服务中的res.render吗?也许是因为您认为所有代码始终处于 we_have_request_and_user_is_waiting_for_response 状态。 嗯,事实并非如此:模型方法和服务可以从sails控制台,后台工作者或代码调用,而不是按计划运行。在这些情况下,我们根本没有res个对象。

控制器是专门设计用于包含响应逻辑的用户操作的地方。因此,您应该将该逻辑放在控制器中。 MVC

答案 2 :(得分:1)

从技术上讲,前面的发言者有些正确:有一个原因res仅存在于控制器中。例如,如果它是一个CLI应用程序,并且根本没有HTTP意义上的请求/响应呢?

也就是说,如果你只需要为一个或另一个目的渲染一些HTML,你总是可以使用全局Express'渲染器,它不需要呈现响应:它可以通过sails.express.app.render访问,参见{ {3}}方法的参数。