如何使用loopback.io在REST中包含相关实体

时间:2014-09-18 04:02:50

标签: node.js rest loopbackjs

我正在使用Strongloop的环回工具来创建REST服务。我想知道如何定义在请求模型时要返回的相关实体。

我在文档中看到您可以发送GET /api/members?filter[include]=posts之类的请求并返回相关的帖子模型,我发现您可以发出GET /api/members?filter[include]=posts&filter[include]=comments之类的请求来获取帖子和评论,但有没有办法在代码或生成的json文件中定义您在请求模型时始终返回某个特定关系?

2 个答案:

答案 0 :(得分:3)

您可以使用两种不同的简单方法来获得与帐户的关系。

  1. 在Model.json文件中使用模型定义。

    "validations": [],
    "relations": {
      "team": {
      "type": "belongsTo",
      "model": "Team",
      "foreignKey": ""
    },
    "user": {
      "type": "belongsTo",
      "model": "User",
      "foreignKey": ""
    }
    }
    
  2. 这将始终使用直接关系将一个模型与另一个模型绑定,您可以使用以下代码行检索它们。

    app.models.TeamRole.findOne({
          where: {
            userId: user.id
          },
          include:[ {
            relation: 'team'
          },
    {
            relation: 'user'
          } ]
        },function(err,team,user){
    //retrieve relational data here
    });
    
    1. 您可以使用operational hooks概念轻松获得此类关系。
    2. 干杯。

答案 1 :(得分:1)

预设过滤器属性称为默认范围。我们有一个待处理的拉取请求来支持它。请参阅https://github.com/strongloop/loopback-datasource-juggler/pull/296

作为发布功能之前的变通方法,您可以使用beforeRemote挂钩来使用默认范围更新过滤器对象。请参阅http://docs.strongloop.com/display/LB/Defining+remote+hooks