Rahul Radhakrishnan
Rahul Radhakrishnan

Reputation: 831

Loopback app.models.ModelName is undefined

Below code is accessing one model from another model, which returns undefined

var app = require('../../server/server');
module.exports = function(Regions) {
    const Media = app.models.Media;
    console.log( Media) // Returns Undefined
}

And I have tried below also, but same error

module.exports = function(Regions) {
     console.log( Regions.app.models.Media) // Returns Undefined
}

Upvotes: 1

Views: 1035

Answers (3)

F3L1X79
F3L1X79

Reputation: 2665

Is your sample code correctly located in common/models/regions.js?

Here is some other snippet for you:

'use strict';

var app = require('../../server/server');
var models = app.models;
var Media;
app.on('started', function () {
    Media = models.Media;
});

module.exports = function (Regions) {

    ...

}

Upvotes: 0

Antonio Trapani
Antonio Trapani

Reputation: 811

This is the way:

module.exports = function (Region) {
  let app
  
  Region.beforeRemote('find', function (ctx, unused, next) {
    // Do something
    next()
  })
  
  Region.on('attached', function (a) {
    app = a
  })
}

You can also create a boot script if you want to perform actions across models at boot time:

Upvotes: 0

Rodrigo Mata
Rodrigo Mata

Reputation: 1859

Have you tried accessing your model like so:

require('loopback').getModel('Regions')

Upvotes: 1

Related Questions