我在模型的ctx.result
操作挂钩上修改after save
以简化POST方法的响应。响应应仅包含生成的id
和仅属于模型的响应属性:
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
。< / p>
修改响应正文的正确方法是什么?
答案 0 :(得分:2)
他们建议使用afterRemote挂钩来调整响应:how to modify the responses loopback sends。因此,只需将您实现的逻辑移动到该方法中即可。非常有可能,ctx.result会在后期填充,这就是为什么你在模型钩子中放入ctx.result的任何东西都会被覆盖。