Loopbackjs 有没有办法创造一个;“全球”;无论所请求的型号如何,都将触发的挂钩

Loopbackjs 有没有办法创造一个;“全球”;无论所请求的型号如何,都将触发的挂钩,loopbackjs,Loopbackjs,我希望能够为我拥有的每个模型添加行计数。我知道如何使用远程或操作钩子添加它,但据我所知,您必须将代码添加到您想要在其上使用它的每个模型中。相反,我只想编写一个钩子,不管请求什么模型,它都会触发。您可以利用一个功能 在model confg.js中指定混音器的位置: { "_meta": { "mixins": [ "loopback/common/mixins", "loopback/server/mixins", "../common/mixin

我希望能够为我拥有的每个模型添加行计数。我知道如何使用远程或操作钩子添加它,但据我所知,您必须将代码添加到您想要在其上使用它的每个模型中。相反,我只想编写一个钩子,不管请求什么模型,它都会触发。

您可以利用一个功能

model confg.js
中指定混音器的位置:

{
  "_meta": {
    "mixins": [
      "loopback/common/mixins",
      "loopback/server/mixins",
      "../common/mixins",
      "./mixins"
    ],
    ...
  },
  ...
}
在指定的mixin文件夹中创建mixin(例如,
server/mixins/.js
):

将mixin添加到您的模型中:

{
  "name": "MyModel",
  "base": "PersistedModel",
  "properties": {
    ...
  },
  ...
  "mixins": {
     "MixinName": true
   },
  ...
}

另一个选项是内置
持久化模型的扩展。您可以将钩子添加到它,然后将您的模型基于此扩展的
PersistedModel

所有模型都基于PerssdedModel。也许如果你钩住PersistedModel.prototype.[before | after]Remote()?你也可以用钩子创建一个,然后将它添加到你的模型中。在我提到的细节中,这就是我想要避免的。顺便说一句,我去过布鲁日和安特卫普,这是个不错的地方。我的朋友在Brudge有家人。拼写Bruges你提到你不想在每个模型中添加钩子实现。添加mixin只是每个模型定义文件中的一行。无论如何,如果这太多,您可以使用@YeeHaw1234建议,如果您不想接触内置模型,您可以扩展
PersistedModel
添加钩子,然后将所有模型基于此扩展的
PersistedModel
。很高兴看到你喜欢安特卫普/布鲁日。如果有机会,一定要检查一下Gent。
{
  "name": "MyModel",
  "base": "PersistedModel",
  "properties": {
    ...
  },
  ...
  "mixins": {
     "MixinName": true
   },
  ...
}