jeudi 16 avril 2015

Modularizing Socket.io with Express 4

I'm trying to modularize my application files and I'm having problems with Socket.io. I would like to use the io inside my routes.js. Something like this:



var router = require('express').Router();
var io = require('./sockets/my-io');

router.get('/', function(req, res) {
io.emit('request-detected');
});

module.exports = router;


But I can't do, because the socket.io needs the app server, and when I'm inside the routes.js file, the app server is not listening or being exported yet.


Can you give me a solution, or any other approach to this problem?


Here's what I have:


app.js



var app = require('express')();
var routes = require('./routes');

/* ... */

app.use('/contacts', routes);

module.exports = app;


bin/www



#!/usr/bin/env node

var app = require('../wallet');

var server = app.listen(port, function() {
debug('Express is listening o port ' + port);
});


routes.js



var router = require('express').Router();

router.get('/', function(req, res) {
console.log('hey');
});

module.exports = router;

Aucun commentaire:

Enregistrer un commentaire