gpt4 book ai didi

sequelize.js - 羽毛 Sequelize 和一次性联想

转载 作者:行者123 更新时间:2023-12-03 22:41:02 24 4
gpt4 key购买 nike

我想为需要加载一些关联的某些羽毛服务调用。问题是,当我使用钩子(Hook)以“羽毛方式”进行操作时,钩子(Hook)不是一次性的,而是继续使用。有没有办法做一个“羽毛方式一次性关联”?钩子(Hook)应该是 destroyed通话后。

目前:

serviceAccountAssosiations() {
return function (hook) {
const walletModel = hook.app.service('wallets').Model;
const currencyModel = hook.app.service('currencies').Model;
const assetClassModel = hook.app.service('asset-classes').Model;
const exchangeModel = hook.app.service('exchanges').Model;
const bankModel = hook.app.service('banks').Model;
const valueAccountModel = hook.app.service('value-accounts').Model
const valueAccountTransactionModel = hook.app.service('value-account-transactions').Model
const walletTransactionsModel = hook.app.service('wallet-transactions').Model
const association = {
include: [
{ model: exchangeModel },
{ model: bankModel },
{ model: valueAccountModel, include: [{ model: valueAccountTransactionModel },{ model: currencyModel }] },
{ model: walletModel, include: [{ model: walletTransactionsModel },{ model: currencyModel },{ model: assetClassModel }] }
]
};

switch (hook.type) {
case 'before':
hook.params.sequelize = Object.assign(association, { raw: false });
return Promise.resolve(hook);
break;

case 'after':
dehydrate( association ).call(this, hook);
break;
}
}
}

get (id, params) {
console.log('id', id)
let app = this.options.app;
return app.service('service-accounts').hooks({
before: {
all: [this.serviceAccountAssosiations()]
},
after: {
all: [this.serviceAccountAssosiations()]
}
})
.get(id)
.then((data) => {
return data;
});
}

最佳答案

我不完全确定您的意思,但是如果您只想在可以在钩子(Hook)函数之外设置一个标志后运行钩子(Hook),请检查它并跳过钩子(Hook),如果它是这样的:

serviceAccountAssosiations() {
let ran = false;

return function (hook) {
if(ran) {
return hook;
}

const walletModel = hook.app.service('wallets').Model;
const currencyModel = hook.app.service('currencies').Model;
const assetClassModel = hook.app.service('asset-classes').Model;
const exchangeModel = hook.app.service('exchanges').Model;
const bankModel = hook.app.service('banks').Model;
const valueAccountModel = hook.app.service('value-accounts').Model
const valueAccountTransactionModel = hook.app.service('value-account-transactions').Model
const walletTransactionsModel = hook.app.service('wallet-transactions').Model
const association = {
include: [
{ model: exchangeModel },
{ model: bankModel },
{ model: valueAccountModel, include: [{ model: valueAccountTransactionModel },{ model: currencyModel }] },
{ model: walletModel, include: [{ model: walletTransactionsModel },{ model: currencyModel },{ model: assetClassModel }] }
]
};

switch (hook.type) {
case 'before':
hook.params.sequelize = Object.assign(association, { raw: false });
return Promise.resolve(hook);
break;

case 'after':
dehydrate( association ).call(this, hook);
break;
}

ran = true;

return hook;
}
}

关于sequelize.js - 羽毛 Sequelize 和一次性联想,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46005431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com