0
私のルートでsocket ioを使用できるようにしようとしていますが、私が試したすべての方法でエラーが出るか、index.jsファイルでapp.ioが未定義です。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;
をそのためエクスプレス4の変化のの
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;