从生成的进程访问 Sails 控制器
Accessing a Sails controller from a spawned process
我正在尝试在Sails的升降机上生成一个后台服务。这是我到目前为止想出的:
config/bootstrap.js
:
module.exports.bootstrap = function(cb) {
sails.on('lifted', function() {
var spawn = require('child_process').spawn;
var worker = spawn('node', ['./worker.js']);
});
cb();
};
worker.js
:
var sails = require('sails');
sails.controllers.MyController.myFunction(null, function(data) {
console.log(data);
});
当我举起帆时,我收到以下错误:Cannot read property 'MyController' of undefined
。
我尝试没有require('sails')
,也没有控制器名称前面的sails.controllers
,但随后它让我MyController is not defined
.
知道为什么我无法从引导功能访问我的控制器吗?
您需要加载或提升 Sails 应用程序才能访问控制器、模型等。 有关更多详细信息,请参阅sails.load()
和sails.lift()
。 所以它会是这样的:
var sails = require('sails');
sails.load(function(err, sails) {
if (err) {
// handle error and exit process
}
// sails is now fully loaded
sails.controllers.my.myFunction(null, function(data) {
console.log(data);
}
});
旁注,在请求上下文之外运行控制器代码也很奇怪。 您可能应该将该代码重构为服务。 正如上面@elssar说明的那样,控制器身份是小写的,"控制器"部分被删除。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- Sails.js:同时发布文本输入和一个文件
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何访问fastOpt.js
- 访问JSON对象内部的数组元素
- 从模块内部访问Express装载路径
- 难以访问的JS环境中的语法错误
- 如何从对象的原型方法访问JavaScript对象属性
- 如何使用javascript访问sails.js模型中的属性
- 如何访问任务文件中的 Sails 配置变量
- 从生成的进程访问 Sails 控制器
- 访问Sails中的JSON请求参数
- Sails.js模型通过字符串名称访问
- 如何在Sails中访问控制器之外的模型
- 如何从Sails.js中的控制器访问资产/图像