How do you call a function from within another function in a module.exports declaration?
I have MVC structure node js project and a controller called TestController.js. I want to access method within controller, but using this keyword gives below error:
cannot call method getName of undefined
"use strict"
module.exports = {
    myName : function(req, res, next) {
        // accessing method within controller
        this.getName(data);
    },
    getName : function(data) {
        // code
    }
}
How do I access methods within controller?
I found the solution :-)
"use strict"
var self = module.exports = {
    myName : function(req, res, next) {
        // accessing method within controller
        self.getName(data);
    },
    getName : function(data) {
        // code
    }
}
                        You can access the getName function trough module.exports. Like so:
"use strict"
module.exports = {
    myName : function(req, res, next) {
        // accessing method within controller
        module.exports.getName(data);
    },
    getName : function(data) {
        // code
    }
}
                        Maybe you could do it like this. It reduce nesting. And all your export is done at the end of your file.
"use strict";
var _getName = function() {
    return 'john';
};
var _myName = function() {
    return _getName();
};
module.exports = {
    getName : _getName,
    myName : _myName
};
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With