Oleg Shemetov Oleg Shemetov - 4 months ago 25
Node.js Question

loopback parent model - how to set properties and create child models

I have several loopback models and I want to add shared functions to them.
I'm not really sure if I understand loopback's

extend
approach, but I created a
Dictionary
model, set other models
base
property to Dictionary and got stuck here.

Essentially I need to create an instance of child model, fetch some data and build a hash. Then I plan to call app.models.ChildModel.createHash() several times in the boot script to create dictionary for each of the models.

I'm not sure where to start.. how do I pass the child class name (or instance) to parent? I obviously need it to query the data.

I made a working solution for a concrete
Regions
model

module.exports = function(Regions){
var countriesHash={};
Regions.setup=function(next){
Regions.find({where:{type:'Country'}}, function(err, countries){
countries.forEach(function(country){
countriesHash[country.id]=country;
});
console.log('hash built');
next();
});
};


but I want to refactor it to abstract
Dictionary
class and just set a few properties like child name and
where
in concrete models.

Answer

You can use mixin (here) to put shared functionalities there and use in models.

Also you can send them some options.

Comments