在sails.js控制器中调用super方法

时间:2013-08-07 17:49:41

标签: javascript node.js inheritance sails.js

当我在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
        }
    }
};

1 个答案:

答案 0 :(得分:8)

  对于Sails&gt; = v0.10.x

更新,请参阅@ naor-biton的the comment below

如果要访问默认实现(蓝图),从v0.9.3开始,可以调用next()(控制器的第三个参数)。这是因为Sails基于中间件的Express / Connect概念,允许您将事物链接在一起。

请注意,此行为可能会在后续版本中发生变化,因为next()也是您为默认404处理程序(config/404.js)调用其下方没有蓝图的操作的方式。

更好的方法是,如果您对使用蓝图感兴趣但事先运行一些逻辑,则保持控制器操作未定义并使用一个或多个策略,这些策略将事先运行。