Вопрос по node.js, нужно передать данные с роута в контроллер, как?
В двух словах: не нужно пытаться передавать io в качестве параметра.
Его можно сделать "глобальным" на уровне app следующим образом.
К примеру, послеvar io = require('socket.io')(server);
написатьapp.set('io', io);
после чего можно в любом обработчике получить его черезvar io = req.app.get('io');
Подключаем middleware, впереди тех обработчиков, которым нужен сокет.  app.use(require(__dirname + '/middleware/SOCKET'));
Внутри пишем.req.app.locals.io=io;