回送操作挂钩接收的选项为空

时间:2019-01-02 18:22:14

标签: loopback

我将尽力解释这种奇怪的情况。

我已经创建了一个操作钩子"before save",并将其放在mixin中,以将其添加到某些模型中。

此混入使用context.options来获取当前的userId做某事。

如果我直接调用该操作(例如POST /Accounts),则此mixin可以正常工作。

但是,如果我在远程方法中调用它,则context.options为空,例如,如果我们有一个名为POST /Accounts/Signup的方法,在其中,我们称为Account.create(...),即{{ 1}}钩子收到"before save"作为options

此处已托管沙箱项目 https://github.com/mustafamagdy/loopback-sandbox-issue

mixin代码段如下:

empty object {}

1 个答案:

答案 0 :(得分:0)

在调查之后,我发现这个issue谈论着类似的行为,但是,这些评论具有破坏性。因此,我想在这里为面临相同问题的任何人写下结论。

回送(Loopback)要求您将您从远程方法声明的选项传递给模型方法,如果您想在操作挂钩上接收它,那么我最终这样做了。

module.exports = function(Note) {
  Note.makeNew = makeNew;

  async function makeNew(options) {
    await Note.create(obj, options);
  }
};