Javascript 环回操作钩子使用多个模型

Javascript 环回操作钩子使用多个模型,javascript,loopbackjs,Javascript,Loopbackjs,我有一个关于LoopBack的操作钩子的问题 在上面所说的帮助下,每当触发我的公司模型的“保存后”事件时,我都试图以编程方式创建一个特权对象。这是为了在保存对象后自动创建对象 请注意,我已经简化了我的案例,使其变得简单,但实际上,我将在创建公司后创建几个对象 我在我的common/models/文件夹中创建了一个脚本,其中包含以下代码: module.exports = function (Company) { Company.observe('after save', function

我有一个关于LoopBack的操作钩子的问题

在上面所说的帮助下,每当触发我的公司模型的“保存后”事件时,我都试图以编程方式创建一个特权对象。这是为了在保存对象后自动创建对象

请注意,我已经简化了我的案例,使其变得简单,但实际上,我将在创建公司后创建几个对象

我在我的
common/models/
文件夹中创建了一个脚本,其中包含以下代码:

module.exports = function (Company) {
    Company.observe('after save', function createObjectsForNewClient(ctx, next) {
    if (ctx.instance) {
        log('A new Company has been created. Shall create a Privilege for it.');

        Privilege.create(
            {...},
            function (err, obj) {
                if(err)
                    console.error(err);

                if(obj)
                    console.lof(obj);
                }
            );
        }
    }
}
这样,钩子会被正确触发,但环回会停止,并显示一个异常:

TypeError:无法读取未定义的属性“Privilege”

我认为这个模型可以在某个loopback/javascript/几乎神奇的范围内使用。问题是,我还尝试在
module.exports=function(Company,Privilege){…
块中添加Privilege模型,但它似乎不接受在函数中列出无限多的模型。。。 您还应该注意,我已经在
common/models/
文件夹中将我的模型创建为JSON文件,但是没有其他用于这些模型的JS脚本,因为环回似乎会自动处理导出。这会不会影响到它们无法按我的意愿访问的事实


我可能在某个地方做错了什么,但我尝试做的事情似乎相当简单。有人有想法吗?

其他模型可以通过
Model.app.models
访问

我通常在前几行中定义远程方法或钩子需要的所有模型,例如:

module.exports = function (Company) {
    Company.observe('after save', function createObjectsForNewClient(ctx, next) {
        const Privilege = Company.app.models.Privilege,
              OtherModel = Company.app.models.OtherModel;
        // the rest of your operation hook
请注意,对于每个方法都必须这样做。这不起作用,因为模型在编译时没有引导:

module.exports = function (Company) {
    // won't work
    const OtherModel = Company.app.models.OtherModel;

其他型号可通过
Model.app.models
访问

我通常在前几行中定义远程方法或钩子需要的所有模型,例如:

module.exports = function (Company) {
    Company.observe('after save', function createObjectsForNewClient(ctx, next) {
        const Privilege = Company.app.models.Privilege,
              OtherModel = Company.app.models.OtherModel;
        // the rest of your operation hook
请注意,对于每个方法都必须这样做。这不起作用,因为模型在编译时没有引导:

module.exports = function (Company) {
    // won't work
    const OtherModel = Company.app.models.OtherModel;

非常感谢,这正是我需要的。也感谢你的提示,我可能会浪费时间尝试通过全球化我的其他模型使我的代码通用!非常感谢,这正是我需要的。也感谢你的提示,我可能会浪费时间尝试通过全球化我的其他模型使我的代码通用!