Javascript 环回操作钩子使用多个模型
我有一个关于LoopBack的操作钩子的问题 在上面所说的帮助下,每当触发我的公司模型的“保存后”事件时,我都试图以编程方式创建一个特权对象。这是为了在保存对象后自动创建对象 请注意,我已经简化了我的案例,使其变得简单,但实际上,我将在创建公司后创建几个对象 我在我的Javascript 环回操作钩子使用多个模型,javascript,loopbackjs,Javascript,Loopbackjs,我有一个关于LoopBack的操作钩子的问题 在上面所说的帮助下,每当触发我的公司模型的“保存后”事件时,我都试图以编程方式创建一个特权对象。这是为了在保存对象后自动创建对象 请注意,我已经简化了我的案例,使其变得简单,但实际上,我将在创建公司后创建几个对象 我在我的common/models/文件夹中创建了一个脚本,其中包含以下代码: module.exports = function (Company) { Company.observe('after save', function
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;
非常感谢,这正是我需要的。也感谢你的提示,我可能会浪费时间尝试通过全球化我的其他模型使我的代码通用!非常感谢,这正是我需要的。也感谢你的提示,我可能会浪费时间尝试通过全球化我的其他模型使我的代码通用!