2016-04-28 124 views
0

我有一个简单的问题。对于创建方法和MyModel.observe('before save')MyModel.beforeRemote('create')挂钩的主要区别是什么。我已经阅读过文档,并且我知道操作钩子并不是绑定到特定的方法,而是从执行特定高级操作(例如create)的所有方法触发的。但在这个特定的例子中,MyModel.beforeRemote('create')将和我的MyModel.observe('before save')一样工作,对吧?或者这会在api流程的其他“状态”上执行?创建方法的操作挂钩或远程挂钩

远程钩:

MyModel.beforeRemote('create', (ctx, next) => { 
    console.log("beforeRemote"); 
    next(); 
} 

操作钩:

MyModel.observe('before save', (ctx, next) => { 
    console.log("before save"); 
    next(); 
} 
+0

什么语言你正在用吗 ?我们可以看到一些代码吗?请花一些时间来构建[完整,最小和验证示例](http://stackoverflow.com/help/mcve) –

+0

@SuperPeanut,正如您可以通过标记所看到的,这与LoopBack Node.js框架相关。谢谢,示例代码添加。 –

+0

我认为你有这些逆转。第一个代码示例是一个远程钩子,第二个代码是一个操作钩子 – amuramoto

回答

1

MyModel.beforeRemote('create')只会被调用为 '创建' 远程方法,但MyModel.observe('before save')将被调用任何这些:

  • 创建
  • UPSERT
  • findOrCreate
  • updateAll
  • prototype.save
  • prototype.updateAttributes

看到这里的表的所有,将调用每个操作钩远程方法:https://docs.strongloop.com/display/APIC/Operation+hooks