loopback hasMany relation remoteMethod hook

时间:2015-03-29 08:18:19

标签: loopbackjs

我正在使用loopback开发自己的网站。 但最近我遇到了hasMany remoteMethod的问题。 这是问题所在: 我有两个模型:

person.json:

{
  "name": "Person",
  "base": "PersistedModel",
  "strict": true,
  "idInjection": true,
  "properties": {
    /*...
    ....
    */
  },
  "validations": [],
  "relations": {
    "friends": {
      "type": "hasMany",
      "model": "Friend",
      "foreignKey": "personId"
    }
  },
  "acls": [],
  "methods": []
}

friend.json

friend.json:
{
  "name": "friend",
  "base": "PersistedModel",
  "strict": true,
  "idInjection": true,
  "properties": {
    /*...
    ....
    */
  },
  "validations": [],
  "relations": {

  },
  "acls": [],
  "methods": []
}

我想在调用POST / api / Persons / {id} / friends时使用beforeRemote。

所以我代码在person.js

    module.exports = function(Person) {
        Person.beforeRemote('__create__friends', function(ctx, instance, next) {
            /*
                code here
            */
        });
    };

但它不起作用!

一开始我认为这是'__create__friends'的问题,但是当我 code.in person中的代码:

    module.exports = function(Person) {
        Person.disableRemoteMethod('__create__friends');
    };

我可以成功禁用'__create__friends'。

那么问题是什么?

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:8)

因为相关模型的方法附加到Person原型,所以你应该注册这样的钩子:

Person.beforeRemote('prototype.__create__friends', function() {
    next()
})