0
Я пытаюсь использовать сокет io в своих маршрутах, однако каждый метод, который я попробовал, дает мне ошибку или возвращает app.io undefined в файле index.js.Экспресс 4 Передача Socket.IO в Index.js
Ниже дает мне ошибку:
var search = 1 + req.url.indexOf('?');
^
TypeError: Cannot read property 'indexOf' of undefined
для линии:
app.use('/', require('./routes/index')(io));
бен/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;
app.js
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;