2016-04-09 15 views
0

Yollarımdaki soketimi kullanabilmeye çalışıyorum ancak denediğim tüm yöntemler bana bir hata veriyor veya index.js dosyasında tanımlanmamış bir app.io döndürüyor. hat içinExpress 4 Geçiş Socket.IO to Index.js

var search = 1 + req.url.indexOf('?'); 
         ^

TypeError: Cannot read property 'indexOf' of undefined 

:

aşağıda bana hata veriyor

app.use('/', require('./routes/index')(io)); 

bin/www

var app = require('../app'); 
app.io.attach(server); 

//var io = app.io; 
//io.attach(server); 

Index.js

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


router.get('/', function(req, res, next) { 
    res.render('index', { 
    title: 'Home'  
    }); 
}); 

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

module.exports = function(io) { 
    var app = require('express'); 
    var router = app.Router(); 

    io.on('connection', function(socket) { 

    }); 

    return router; 
}; 


module.exports = router; 

Çünkü Express 4 değişikliklerin

var express = require('express'); 
var path = require('path'); 
var logger = require('morgan'); //logs information to terminal 
var socket_io = require("socket.io"); 


var app = express(); 
app.use(express.static(path.join(__dirname, 'public'))); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'ejs'); 

app.use(logger('dev')); 


var io   = socket_io(); 
app.io   = io; 

app.use('/', require('./routes/index')(io)); //adding (io) or (app.io) gives the above error. 

app.io.on('connection', function(socket){ 
    console.log("Socket.io connected"); //This works 
}); 


module.exports = app; 

cevap

0

app.js:

var io   = socket_io(); 
app.io   = io; 

app.set('socketio', io); 

Index.js

router.get('/example', function(req, res){ 
    var socket = req.app.get('socketio'); 
    socket.emit('event', data); 
    }); 
router.get
İlgili konular