Socket.io + Express + API?

Проблема в том, как создать возможность отправлять socket.emit внутри конретного роута с разделением по файлам.

main server js
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io').listen(config.portSockets);
// всякое
require('routes')(app, io);
// всякое


тут route/index.js
// дополнительные зависимости
module.exports = function (app, io) {
    // допустим роут с пользователями
    require('./user')(app, io);
   // еще код
}


user/index.js
module.exports = function (app, io) {
app.get(prefix + 'user/:id',
        require('routes/user/getById').get);
}


user/getById.js module
exports.get = function (req, res, next) {
   // Итак как мне сюда передать ссылку на переменную io, чтобы вызвать ее по необходимости???
};
  • Вопрос задан
  • 557 просмотров
Решения вопроса 1
vlaad360
@vlaad360 Автор вопроса
Web engineer
Как всегда оказалось, все проще, пишем middleware, где встраиваем в объект res наш io
app.use(function(req, res, next){
    res.io = io;
    next();
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы