2017-02-14 5 views
2

하나의 지속 모델의 원격 메소드에서 루프백의 다른 지속 모델의 데이터에 액세스하는 방법은 무엇입니까?

'use strict'; 
 
module.exports = function (City) { 
 
City.GetCurrentPopulation = function (req) { 
 
var population; 
 
City.app.models.Pupulation.find({where{id:req.id}}, //This line //gives me an error that cannot read property 'find' of undefined 
 
function(req.res){ 
 
population=res.population; 
 
}); 
 
response='Population for ' +req.cname ' is' +population; 
 
req(null, response); 
 
}; 
 
City.remoteMethod(
 
    'GetCurrentPopulation', { 
 
     http: { 
 
     path: '/GetCurrentPopulation', 
 
     verb: 'GetCurrentPopulation' 
 
     }, 
 
     returns: { 
 
     arg: 'startdate', 
 
     type: 'string' 
 
     } 
 
    } 
 
);

이 모델 도시이고 내가 "population.find (일부 필터)"와 같은 다른 모델에 액세스 할 방법이 작업을 수행하려면?

도시 모델로 작성된 원격 메소드가 있습니다. 인구 기록에 액세스하려고하는 곳 :

var countryp = population.find (where {id : 4});

var currentpopulation = countryp.Totalpopulation;

오류를 발생시킵니다 .find는 함수가 아닙니다.

이 방법을 제안하십시오.

+0

설명서를 참조 할 수 있습니다 : 당신은이 같은 시도

사용하여 응용 프로그램 개체에 대한 참조를 얻을 필요가? 질문에 맞는 태그가 있는지 확인하십시오. 또한 사용중인 환경 및/또는 관련 라이브러리에 대한 정보를 추가하십시오. 그렇지 않으면 질문의 내용을 추측하기 어렵습니다. –

+0

네, 기존의 postgresql 데이터 소스에서 API를 만들려고하는 loopback.js와 관련이 있습니다. –

+0

코드를 게시 할 수 있습니까? – Dyo

답변

3

City.app.models.Population은 도시 & 채우기 모델 사이에 어떤 관계가 정의 된 경우에만 작동 할 수 있습니다. 그렇지 않으면 그렇게 작동하지 않을 것입니다. 다른 모델과 관련이없는 경우.

var app = require('../../server/server'); 
module.exports = function (City) { 

var Population = app.models.Population; 
City.GetCurrentPopulation = function(req) { 
    Population.find({where{id:req.id}}, function (err) { 
    if (err) { 
     return console.log(err); 
    } else { 
     // do something here 
    }); 
} 

당신은 관련된 귀하의 질문에 Loopback.js 수 있나요 여기 https://loopback.io/doc/en/lb3/Working-with-LoopBack-objects.html#using-model-objects

+0

감사합니다. var app = require ('../../ server/server'); 실종되어 문제가 발생했습니다. –

+0

안녕하세요, 비슷한 방법으로 한 방법에 대한 원격 후크를 추가했습니다. 거기에 하나의 모델에 액세스하려고하고 거기에 레코드를 삽입하려고합니다. 위에서 언급 한 방법으로 해당 모델에 대한 참조를 추가했습니다. var app = require ('../../ server/server'); 및 var Population = app.models.Population; 내부 내보내기 기능. "Population.upsert()"에서 undefined의 upsert를 읽을 수 없다고합니다. –

+0

var population = app.models.Population을 추가해보십시오. 이 같은 함수 내부의 문장 City.GetCurrentPopulation = function (req) { var Population = app.models.Population; } – Dyo