在'loaded'挂钩后,Loopback没有响应修改后的数据

时间:2017-07-06 23:56:18

标签: javascript node.js loopbackjs

我的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()属性。有人遇到过这个问题,或者对未明确说明的文档有所了解吗?

0 个答案:

没有答案