javascript - Working with express.io in a separate router file -


i'm trying use router , socket.io together.

i've created separate router file , try conjunct route , socket.io

app = require('express.io')(); //var app = express(); //var router = express.router(); app.http().io();    var mysql = require('mysql'); var connection = mysql.createconnection({     host    :'aaaa',     port : 3306,     user : 'bbbb',     password : 'cccc',     database:'dddd'  });  connection.connect(function(err) {     if (err) {         console.error('mysql connection error');         console.error(err);         throw err;     } });    /* home page. */ app.get('/', function(req, res) {        var query = connection.query('select * xe_livexe_rss limit 0,1',function(err,rows){         console.log(rows);         //res.json(rows);         res.render('index', { title: 'express',rss:rows });         req.io.route('ready');           });  });  app.io.route('ready', function(req,res) {      req.io.emit('talk', {             message: 'io event io route on server'     }); });   module.exports = app; 

but,,when request / router, fails following message.

typeerror: object #<object> has no method 'emit'     @ object.module.exports [as ready] (/home/ubuntu/nodetest1/routes/index.js:41:12)     @ manager.io.route (/home/ubuntu/nodetest1/node_modules/express.io/compiled/index.js:85:29)     @ object.request.io.route (/home/ubuntu/nodetest1/node_modules/express.io/compiled/index.js:197:29)     @ query._callback (/home/ubuntu/nodetest1/routes/index.js:34:10)     @ query.sequence.end (/home/ubuntu/nodetest1/node_modules/mysql/lib/protocol/sequences/sequence.js:78:24)     @ query._handlefinalresultpacket (/home/ubuntu/nodetest1/node_modules/mysql/lib/protocol/sequences/query.js:143:8)     @ query.eofpacket (/home/ubuntu/nodetest1/node_modules/mysql/lib/protocol/sequences/query.js:127:8)     @ protocol._parsepacket (/home/ubuntu/nodetest1/node_modules/mysql/lib/protocol/protocol.js:213:24)     @ parser.write (/home/ubuntu/nodetest1/node_modules/mysql/lib/protocol/parser.js:62:12)     @ protocol.write (/home/ubuntu/nodetest1/node_modules/mysql/lib/protocol/protocol.js:37:16) 

just wonder have missed...

by error message, can callback fucntion ready not receiving socketrequest object , gives access requestio object has event trying access emit(event, data).

i guess code has bug higlited below:

/* home page. */ app.get('/', function(req, res) {        var query = connection.query('select * xe_livexe_rss limit 0,1',function(err,rows){         console.log(rows);         //res.json(rows);         res.render('index', { title: 'express',rss:rows });         req.io.route('ready');  // <==          //when event invoked there no req/res object passed `ready` event.         //this has invoked client script.          //emit ready event.           /* `io.emit('ready')`; */ <== clientpage.html     });     }); 

i have following code working:

app = require('express.io')(); app.http().io();  // setup ready route, , emit talk event. app.io.route('ready', function(req) {     req.io.emit('talk', {         message: 'io event io route on server'     }) });  // send client html. app.get('/', function(req, res) {     res.sendfile(__dirname + '/client.html') });  app.listen(7076); 

Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -