Loopback beforeRemote for PUT请求

时间:2015-12-17 04:36:04

标签: node.js loopbackjs strongloop

使用Loopback框架,我想在编辑Item之前执行一些操作,因此我尝试这个但无法将其绑定到更新钩子。

  Item.beforeRemote("update", function(ctx,myitem,next) {
   console.log("inside update");
  });

我尝试使用 updateAttributes updateById 创建而不是更新,而不是更新。这种beforeRemote挂钩适用于 POST 上的创建,但在编辑期间无法通过 PUT 获取它。 留给我的最后一个解决方案是再次使用通配符钩子检查methodString,但我想知道是否有任何记录,我找不到。

Item.beforeRemote("**",function(ctx,instance,next){
  console.log("inside update");
});

4 个答案:

答案 0 :(得分:3)

与评论相反,save是一个远程钩子,而不是一个操作钩子,但你想将它用作:prototype.save。相关的操作钩子是before save。您可以在LoopBack docs page上查看这些表格。我可能会将其实现为操作挂钩,并使用上下文中的isNewInstance属性仅执行更新操作:

Item.observe('before save', function(ctx, next) {
  if (ctx.isNewInstance) {
    // do something with ctx.currentInstance
  }
  next();
});

答案 1 :(得分:3)

我知道自该帖子被打开以来已经过去了两年,但是如果有人有相同的问题,并且如果您使用端点your_model/{id},则afterRemote钩子为replaceById。 如果您需要知道在远程挂钩中触发了哪种方法,请使用以下代码:

yourModel.beforeRemote('**', function(ctx, unused, next) {
    console.info('Method name: ', ctx.method.name);
    next();
});

答案 2 :(得分:1)

很抱歉碰到旧问题,但对于那些仍在搜索的人来说。

'prototype.updateAttributes'可以用作更新请求的远程钩子。 和@jakerella,没有名为'save'的远程钩子,我自己尝试过,但没有用。

答案 3 :(得分:1)

来这里寻找另一件事,猜想它会对某人有帮助。 对于远程model/:id远程修补方法,您必须使用“ prototype.patchAttributes”。