我的Model.js文件中有以下代码。
Model.observe('loaded', (ctx, next) => {
const {
data,
options: {
user
}
} = ctx;
const owner = (user && data && user.uid === data.userId) || false;
console.log(
`${data.id}: loaded - access by ${user && user.name}, owner:${owner}`
);
if (!owner) {
delete data.testProp1;
}
console.log('returning: ', ctx.data);
next();
});
当我发出请求时,我看到以下日志输出(服务器日志):
f3f9ffd6-14dc-42e5-94ba-503aa3426faa: loaded - access by User1, owner:false
returning:
{
testProp2: true,
id: 'f3f9ffd6-14dc-42e5-94ba-503aa3426faa',
userId: 'sfeywkKSuBTlf0DwE4ZOFd8RX5E3'
}
但是在实际的响应中,浏览器收到的实际上是:
{
testProp1: true,
testProp2: true,
id: 'f3f9ffd6-14dc-42e5-94ba-503aa3426faa',
userId: 'sfeywkKSuBTlf0DwE4ZOFd8RX5E3'
}
我遗漏的文档中有什么内容吗?删除该属性正是它在Loopback docs here中显示的内容。另外,在调用data
之前,我实际上将修改后的数据视为ctx
对象上的next()
属性。有人遇到过这个问题,或者对未明确说明的文档有所了解吗?