【问题标题】:Undefined returned while accessing data of another model of loopback from remote method?从远程方法访问另一个环回模型的数据时返回未定义?
【发布时间】:2018-06-11 12:22:24
【问题描述】:

    var loopback = require('loopback');
    var serviceOffering = loopback.getModelByType('ServiceOffering');
    var app = require('../../server/server.js');

    module.exports = function (serviceOffering) {

        serviceOffering.GetAllOfferings = function (options,category,callback) {
            var filter = JSON.parse(JSON.stringify(category));
             var arry=[];
             var getOrgFil={where:{or:[]}};
             var uniqOrList=[];

             serviceOffering.find(options,filter, function (err, result) {
     
               for(var i = 0; i < result.length; i++) {
                    var obj = result[i];
                   if (arry.indexOf(result[i]._createdBy) === -1) {
                     arry.push(obj._createdBy);
                     getOrgFil.where.or.push({UserName:obj._createdBy});
                    }
                }
                console.log(getOrgFil);
                serviceOffering.app.models.Realm.find(options,getOrgFil, function (err, resl) {
                console.log(resl);
                          return callback(null, resl); 
                });
            });
             
        };

        serviceOffering.remoteMethod(
            'GetAllOfferings', {
                http: { path: '/GetAllOfferings', verb: 'get' },
                accepts: { arg: 'category', type: 'object',http: { source: 'query' }  },
                returns: { type: 'array', root: true }
            });
    }

我正在从我的“ServiceOffering”模型的远程方法调用“Realm”模型来过滤和获取一些数据。但是我得到的响应是“未定义的”。我是环回新手,对如何调试的想法非常有限。我能够打印“结果”、“getOrgFil”,但“resp”是“未定义”。有人可以帮我理解为什么我在尝试通过远程方法获取 resp 的值时会得到“未定义”吗?

 I get output as mentioned below   

result = [ { SeriviceCategory: 'SCCER',
             AssetType: List [ 'ATCOF', 'ATHUS', 'ATMLK' ],
             ServiceType: List [ 'STQCR' ],
             Identity: null,
             _type: 'ServiceOffering',
             _createdBy: 'admin',
             _modifiedBy: 'admin',
             _createdOn: 2018-01-01T09:21:48.638Z,
             _modifiedOn: 2018-01-01T09:21:48.638Z,
             _scope: List [ 'tenantId:default' ],
             _autoScope: { tenantId: 'default' },
             _isDeleted: false,
             _version: '536c3db2-2323-4004-afb6-2a9e7995aeca',
            id: 5a49fdac28a2bd802d8206ba } ]

getOrgFil =  { where: { or: [ [Object] ] } }
stringified getOrgFil =  {"where":{"or":[{"UserName":"admin"}]}}

resl =   undefined

Realm 和 ServiceOffering 模型之间没有关系。

【问题讨论】:

  • 领域回调console.log打印什么

标签: javascript loopbackjs strongloop loopback


【解决方案1】:

会是这样的

var app = require('../../server/server');

app.models.Realm.find(options,getOrgFil, function (err, resl) { // this instead of serviceOffering.app.models
                          return callback(null, resl); 
                });

【讨论】:

  • nope.. 我之前尝试过.. 它抛出错误:- 未处理的拒绝类型错误:无法读取未定义的属性“领域”
  • 那么唯一可能的原因是您可能没有在 modelconfig.json 属性中将其注册为模型
  • @N29 我也有同样的问题,请问您在此期间找到解决方案了吗?
  • @hajn 不,我解决了这个问题。没有完全解决这个问题。收到了吗?
  • @N29 不幸的是我不记得了,但我想我也解决了它
猜你喜欢
  • 2017-07-03
  • 1970-01-01
  • 2013-12-30
  • 2018-09-02
  • 1970-01-01
  • 2015-09-24
  • 1970-01-01
  • 2016-10-25
  • 1970-01-01
相关资源
最近更新 更多