LoopBack 操作钩子使用多个模型
LoopBack operation hook use multiple models
我有一个关于 LoopBack 的操作钩子的问题。
在所说 here 的帮助下,我试图在 的 'after save' 事件时以编程方式创建一个 Privilege 对象=]Company 模型被触发。这是为了保存后自动创建对象。
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.
我在我的 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);
}
);
}
}
}
有了这个,挂钩被正确触发,但 LoopBack 停止并出现异常:
TypeError: Cannot read property 'Privilege' of undefined
我认为这个模型可以在某些 loopback/javascript/almost-magic 范围内的某个地方获得。问题是我也尝试在 module.exports = function (Company, Privilege) {...
块中添加 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;
我有一个关于 LoopBack 的操作钩子的问题。
在所说 here 的帮助下,我试图在 的 'after save' 事件时以编程方式创建一个 Privilege 对象=]Company 模型被触发。这是为了保存后自动创建对象。
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.
我在我的 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);
}
);
}
}
}
有了这个,挂钩被正确触发,但 LoopBack 停止并出现异常:
TypeError: Cannot read property 'Privilege' of undefined
我认为这个模型可以在某些 loopback/javascript/almost-magic 范围内的某个地方获得。问题是我也尝试在 module.exports = function (Company, Privilege) {...
块中添加 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;