有没有办法创建一个 "global" 挂钩,无论请求的模型如何,它都会触发
Is there a way to create a "global" hook that will fire regardless of the model requested
我希望能够为我拥有的每个模型添加行计数。我知道如何使用远程或操作挂钩添加它,但据我所知,您必须将该代码添加到要使用它的每个模型中。相反,我只想编写一个无论请求什么模型都会触发的挂钩。
您可以利用 mixin 功能。
在 model-confg.js
中指定你的 mixin 的位置:
{
"_meta": {
"mixins": [
"loopback/common/mixins",
"loopback/server/mixins",
"../common/mixins",
"./mixins"
],
...
},
...
}
在您指定的 mixins 文件夹中创建一个 mixin(例如 server/mixins/<mixin-Name>.js
):
module.exports = function(Model, options) {
Model.observe('before save', function event(ctx, next) {
// Your row count logic
next();
});
};
在你的模型中添加一个 mixin:
{
"name": "MyModel",
"base": "PersistedModel",
"properties": {
...
},
...
"mixins": {
"MixinName": true
},
...
}
另一种选择是扩展内置 PersistedModel
。您可以将钩子添加到它,然后将您的模型基于此扩展 PersistedModel
.
我希望能够为我拥有的每个模型添加行计数。我知道如何使用远程或操作挂钩添加它,但据我所知,您必须将该代码添加到要使用它的每个模型中。相反,我只想编写一个无论请求什么模型都会触发的挂钩。
您可以利用 mixin 功能。
在 model-confg.js
中指定你的 mixin 的位置:
{
"_meta": {
"mixins": [
"loopback/common/mixins",
"loopback/server/mixins",
"../common/mixins",
"./mixins"
],
...
},
...
}
在您指定的 mixins 文件夹中创建一个 mixin(例如 server/mixins/<mixin-Name>.js
):
module.exports = function(Model, options) {
Model.observe('before save', function event(ctx, next) {
// Your row count logic
next();
});
};
在你的模型中添加一个 mixin:
{
"name": "MyModel",
"base": "PersistedModel",
"properties": {
...
},
...
"mixins": {
"MixinName": true
},
...
}
另一种选择是扩展内置 PersistedModel
。您可以将钩子添加到它,然后将您的模型基于此扩展 PersistedModel
.