如何从noeval控制器访问内置的Compoundjs辅助方法?
从一个eval'd控制器中,辅助函数似乎自动加载,只需执行以下操作就可以访问它们:
before('protectFromForgery', function () {
protectFromForgery('some_secret_key');
});
但不确定从非评估控制器访问它们的最佳方法是什么。
它们似乎位于/compound/node_modules_kontroller/lib/helpers.js
答案 0 :(得分: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);
};