LoopBack操作挂钩使用多个模型
问题描述:
我有一个关于LoopBack操作挂钩的问题。LoopBack操作挂钩使用多个模型
凭借什么帮助表示here,我想以编程方式创建特权对象每当触发我公司模型的情况下“保存后”。这是为了在保存一个对象后自动创建对象。
Please note that I've simplified my case to make it simple but I will actually create several objects after the creation of a Company.
我创建了一个脚本INT包含下面的代码我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: Cannot read property 'Privilege' of undefined
我认为这个模型可以在某些环回/ javascript /几乎魔法范围内的某个地方使用。问题是,我也尝试在module.exports = function (Company, Privilege) {...
块中添加特权模型,但它似乎并不接受列出要在该函数中使用的无限数量的模型... 您还应该注意我已经将我的模型创建为common/models/
文件夹中的JSON文件,但没有为这些模型使用其他JS脚本,因为LoopBack似乎自动处理导出。它会对我们想要访问的事实产生影响吗?
我可能在某处做了某些事情,但我试图做的事似乎相当简单。有人有想法吗?
答
其他型号可通过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;
非常感谢你,这正是我所需要的。也感谢您的提示,我可能会失去时间试图通过全球化我的其他模型使我的代码通用化! –