Модуль должен использоваться как:
const { search_companies } = require('...');
Класс должен использоваться как:
const { MainController } = require('...');
const { search_companies } = new MainController();
MainController
в этом случае плохая практика, потому чтоон имитирует использование классов в других языках без учета специфики JavaScript.
MainController
не выигрывает от того, чтобы быть классом, если экземпляр this
игнорируется и не теряет в функциональности, когдакласс подвергается рефакторингу для разделения функций.
Классы не являются прославленными пространствами имен в JavaScript;Есть модули, которые уже служат этой цели.Если требуется пространство имен и нет необходимости в экземпляре класса, модуль можно использовать, как правило.