2017-02-14 18 views
2

Как получить доступ к данным другой сохраненной модели loopback из удаленного метода одной сохраненной модели?

'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 (где {id: 4});

var currentpopulation = countryp.Totalpopulation;

Дает ошибку population.find не является функцией.

Пожалуйста, предложите способ для этого.

+0

Ваш вопрос, связанный с Loopback.js? Убедитесь, что у вас есть правильный набор тегов для вашего вопроса. Кроме того, добавьте информацию об окружающей среде, которую вы используете, и/или участвующих в ней библиотеках, в противном случае сложно догадаться, о чем идет речь. –

+0

Да, это связано с loopback.js, где я пытаюсь сделать API из существующего источника данных postgresql. –

+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 
    }); 
} 

Вы можете обратиться к документации здесь 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()» он говорит, что не может прочитать upsert of undefined. –

+0

попробуйте добавить var Population = app.models.Population; утверждение внутри такой функции City.GetCurrentPopulation = function (req) { var Population = app.models.Population; } – Dyo