если ты следуешь паттерну MVC, то то что ты называешь контроллерами, есть роуты и вообще быть им в отдельном файле
isAllowed проверит разрешен ли пользователю доступ к данному роуту
в той структуре приложения что ты пытаешься сделать, теряется любая универсальность, тебе заказчик может сказать сделай мне тоже самое но только по другому адресу и ответ апи отформатируй как мне надо или вообще зашифруй, на фронте расшифруй - и тут ты будешь крайне озадачен.
routes.js и что то типо такого в нём, isAllowed отрежет тех кто не авторизован
app.get('/route', isAllowed, (req, res) => MyController
.findData()
.then(data => res.json(data))
.catch(err => res.json({success: false, err: err.message}));