0

如何从 noeval 控制器访问内置的 Compoundjs 辅助方法?

从经过评估的控制器中,辅助函数似乎会自动加载,并且可以通过执行以下操作来访问它们:

before('protectFromForgery', function () {
    protectFromForgery('some_secret_key');
});

但不确定从非评估控制器访问它们的最佳方法是什么。

它们似乎位于 /compound/node_modules_kontroller/lib/helpers.js

4

1 回答 1

0

弄清楚了。所有内置的辅助方法都只是附加到控制器上下文对象。(以下示例中的变量“c”)

所以你会做这样的事情:

//Example of noeval controller: app/controllers/car.js:

module.exports = CarController;

// load parent controller
var Essentials = require('./essentials');

function CarController(init) {
    // call parent constructor
    Essentials.call(this, init);

    init.before(function protectFromForgery(c) {
        c.protectFromForgery("some_secret_key");
    }, {only: 'accelerate'});

}

// setup inheritance
require('util').inherits(CarController, Essentials);

CarController.prototype.accelerate = function(c) {
    c.send(++this.speed);
};

CarController.prototype.brake = function(c) {
    c.send(++this.speed);
};
于 2013-07-29T21:04:38.487 回答