当我在sails.js中创建一个控制器并重新定义了一些标准方法时,如何调用该控制器的默认父方法?
module.exports = {
create: function(req, res) {
//test some parameters
if (condition) {
//call regular super method, proceed as usual
//_super(); <- how to do this?
} else {
//do some other things
}
}
};
答案 0 :(得分:8)
对于Sails&gt; = v0.10.x更新,请参阅@ naor-biton的the comment below
如果要访问默认实现(蓝图),从v0.9.3开始,可以调用next()
(控制器的第三个参数)。这是因为Sails基于中间件的Express / Connect概念,允许您将事物链接在一起。
请注意,此行为可能会在后续版本中发生变化,因为next()
也是您为默认404处理程序(config/404.js
)调用其下方没有蓝图的操作的方式。
更好的方法是,如果您对使用蓝图感兴趣但事先运行一些逻辑,则保持控制器操作未定义并使用一个或多个策略,这些策略将事先运行。