Search code examples
sqlnode.jsapiexpressloopbackjs

TypeError: Cannot read property 'execute' of undefined in Loopback


I created a remote method for cm_comediens using native sql query but when i try to execute it in the explorer i get TypeError 500: Cannot read property 'execute' of undefined

this is the method in my cm_comediens.js file

'use strict';
  var app = require('../../server/server.js');
  var mysql = require('mysql'); 
  module.exports = function(cm_comediens) {

    cm_comediens.profile = function (idComedien, cb) {
        var ds = app.dataSource;
        var sql = "SELECT * FROM cm_comediens WHERE id_comedien=?";

        ds.connector.execute(sql, idComedien, function (err, cm_comedienss) {

            if (err) console.error(err);

            cb(err, cm_comedienss);

        });

    };

    cm_comediens.remoteMethod(
        'profile',
        {
            http: { verb: 'get' },
            description: 'Get list of comediens by id',
            accepts: { arg: 'idComedien', type: 'number' },
            returns: { arg: 'data', type: ['cm_comediens'], root: true }
        }
    );
};

table in database and in models in loopback have the same name cm_comediens and the id in the database is : id_comedien and in the model idComedien. What's wrong ?


Solution

  • Check out your datasource implementation

      ds.connector.execute(sql, idComedien, function (err, cm_comedienss) {
    

    app.datasource.connector is null/undefined.