谁可以在LoopBack中为内置模型操作挂钩调用自定义混合功能?

时间:2016-01-18 14:28:20

标签: node.js loopbackjs

我有一个共同的Mixin脚本/ mixin / log.js文件

module.exports = function (Model, options) {
var app = Model.app;

Model.observe('after save', function (ctx, next) {
    // Log CREATE/UPDATE operations on every model
    next();
});
};

我的server / model.config.json文件是

{
    "_meta": {
    "sources": [
      "loopback/common/models",
      "loopback/server/models",
      "../common/models",
      "./models"
    ],
    "mixins": [
      "loopback/common/mixins",
      "loopback/server/mixins",
      "../common/mixins",
      "./mixins"
    ]
  }
}

我有模型common / models / class.js和相关的json文件是common / model / class.json

{
    "name": "class",
    ...
    "mixins": {
        "Log": true
    },
    ...
}

当我尝试任何CREATED / UPDATE操作

Model.observe('after save', function (ctx, next)

工作正常,但我也想在用户模型(内置用户模型)CREATED / UPDATE操作上调用此函数,但它没有工作,虽然我将以下行添加到node_modules / loopback / common / models / user.json

"mixins": {
        "Log": true
    }

任何人都知道我的实现中的问题在哪里?

1 个答案:

答案 0 :(得分:1)

经过大量的苛刻,我得到了github上的解决方案 https://github.com/strongloop/loopback/issues/1973#issuecomment-172760264

<强>解

内置模型在这方面有点不同,因为它们没有完全参与环回启动加载周期。请创建一个文件:server / boot / user.js并尝试类似:

module.exports = function(app) {                                                              
   var User = app.models.User;
   User.mixin('Log');
};