2015-06-14 84 views
4

我正在修改我的模型的after save操作挂钩上的ctx.result以简化POST方法的响应。响应应该只包含生成id和响应只不是模型的一部分属性:修改ctx.result不会更改POST响应

MyModel.observe('after save', function(ctx, next) { 
    if (ctx.instance && ctx.isNewInstance) { 
     ctx.result = { 
      id : ctx.instance.id, 
      responseOnlyProperty: MyModel.getResponseOnlyPropertyValue() 
     }; 
     console.log('result:', ctx.result); 
    } 
    next(); 
}); 

正如预期的那样ctx.result写入设置新值控制台,但响应正文发送回客户端仍包含所有模型属性,并且不包含新添加的responseOnlyProperty

修改响应体的正确方法是什么?

回答

2

他们建议使用afterRemote挂钩来调整响应:how to modify the responses loopback sends。所以,只需将您实施的逻辑移入该方法即可。很有可能,ctx.result会在后期阶段填充,这就是为什么在模型钩子中放入ctx.result的任何内容都会在稍后被覆盖。