环回包括范围内的过滤器适用于GET,但POST请求失败

时间:2018-01-12 18:59:49

标签: loopbackjs

我在order.json中定义了这个范围,它与分支和客户以及其他属性有关。

"name": "Order",
"properties":{...},
"relations": {...},
"acls": {...},
"scope": {
  "include": [
    {"relation": "branch", "scope": { "fields": "BranchName" } }, 
    {"relation": "customer", "scope": { "fields": "CustomerName" } }
  ]
}

这在所有具有以下结果的GET请求中都能正常工作

[
  {
    "OrderDate": "2018-01-12T17:52:21.000Z",
    "CustomerId": 39,
    "BranchId": 5,
    "CustomerRef": "Order by Phone",
    ...
    "CreatedBy": 1,
    "id": 1,
    "branch": {
      "BranchName": "aaaa",
      "id": 5
    },
    "customer": {
      "CustomerName": "xxxx",
      "id": 39
    }
  }
]

我期待类似的结果,但是,成功的POST请求后收到的响应数组不包含相关模型中的BranchName和CustomerName信息。

我做得对吗?或者是否有任何其他方法可以在创建/更新操作后从相关模型中获取信息。我只是在创建/更新后立即尝试避免另一个GET请求。

1 个答案:

答案 0 :(得分:1)

您可以使用操作挂钩after save

Order.observe('after save', function(ctx, next) {
  if (ctx.instance) {

    ctx.instance.relatedmodel = someFunctionToGetRelatedModel();


  }
  next();
});

ctx.instance内部的内容应该包含在loopbacks响应中。

你只需要弄清楚如何无缝地提取相关的模型细节,你想要包括。