0
我試圖能夠在我的路由中使用套接字io,但是我嘗試過的每種方法都給了我一個錯誤,或者返回了index.js文件中的app.io undefined。Express 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;