Почитайте этот вопрос и ответы на него:
Как сделать возможность изменения кода приложений без перезагрузки основного приложения nodejs? Перегружать отдельные части приложения, даже если они не оформлены в модули при изменении их на винте можно при помощи fs.watch и require, предварительно удаляя их из кеша через delete require.cache[require.resolve('file-name')];
И у Вас очень опасная мысль развивается, отождествление модуля с контроллерами и моделями. Модуль не имеет ни какого касания к MVC, какие контроллеры, какие модели? Чтобы ощутить свю абсурдность этого подумайте про встроенные модули fs, http, stream и т.д. они контроллеры или модели? А внешние модули async, colors, request они контроллеры или модели? Почитайте
habrahabr.ru/post/117791 и еще
habrahabr.ru/post/204958