Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用include过滤器在环回中连接两个模型_Javascript_Node.js_Loopbackjs - Fatal编程技术网

Javascript 使用include过滤器在环回中连接两个模型

Javascript 使用include过滤器在环回中连接两个模型,javascript,node.js,loopbackjs,Javascript,Node.js,Loopbackjs,我有两种型号和产品,productId对这两种型号都是通用的 我需要从purchaseId的产品模型中查找productDetails 因此,我在购买模型中创建了一个自定义端点,名为getProductDetails 这就是我试图查询模型的方式 Purchase.find({ "filter": { include: { relation: 'Product',

我有两种型号和产品,productId对这两种型号都是通用的

我需要从purchaseId的产品模型中查找productDetails

因此,我在购买模型中创建了一个自定义端点,名为getProductDetails

这就是我试图查询模型的方式

         Purchase.find({
            "filter": {
                include: {
                    relation: 'Product',
                    scope: {
                        fields: ['productDesc'],
                    }
                }
            },
           where:{
                id:purchaseId
            },
我的亲戚是 购买属于产品,foreignKey为productId

产品有很多可购买性

但即使在执行上述查询时,我也不会在查询结果中获取productDesc


我的模型关系是否错误?

假设产品和采购模型定义如下:

product.json

{
  "name": "Product",
  "base": "PersistedModel",
  "idInjection": true,
  "properties": {
    "productDesc": {
      "type": "string",
      "required": false
    }
  },
  "validations": [],
  "relations": {
    "purchases": {
      "type": "hasMany",
      "model": "Purchase",
      "foreignKey": "productId"
    }
  },
  "acls": [],
  "methods": {}
}
purchase.json

{
  "name": "Purchase",
  "base": "PersistedModel",
  "idInjection": true,
  "properties": {},
  "validations": [],
  "relations": {
    "product": {
      "type": "belongsTo",
      "model": "Product",
      "foreignKey": "productId"
    }
  },
  "acls": [],
  "methods": {}
}
我对您的查询进行了如下调整:

let product = await Purchase.find({
      include: {
        relation: 'product',
        scope: {
          fields: ['productDesc']
        }
      },
      where: {
        id: 1
      }
    })
注意:使用了ES6和ES7,但可以很容易地重写为ES5

必须使用将返回的模型实例及其相关项转换为普通JSON对象

我不确定,为什么要创建一个新端点。环回提供的数据应该足够

e、 g

带过滤器

{ "include": [ "product"]}
GET /Purchases/{id}
{ "include": [ "product"]}