javascript - TypeError : cannot read property 'method' of undefined in nodejs Application -
i developing simple chat application using node.js , socket.io. when connecting socket.io face error of "cannot read property 'method' of undefined".
here app.js file code:-
var express = require('express'), app = express(), path = require('path') cookieparser = require('cookie-parser') session = require('express-session') config = require('./config/config.js'), connectmongo = require('connect-mongo')(session), mongoose = require('mongoose').connect(config.dburl), passport = require('passport'), facebookstrategy = require('passport-facebook').strategy, rooms = [] ; app.set('views', path.join(__dirname , 'views')); app.engine('html', require('hogan-express')); app.set('view engine', 'html'); app.use(express.static(path.join(__dirname,'public'))); app.use(cookieparser()); var env = process.env.node_env || 'development'; if(env === 'development'){ // dev specific settings app.use(session({secret:config.sessionsecret, saveuninitialized : true, resave : true})); } else { //production specific settings app.use(session({ secret : config.sessionsecret, saveuninitialized : true, resave : true, store : new connectmongo({ // url : config.dburl, (for avoiding 2 seperate connection) mongooseconnection:mongoose.connections[0], stringify : true }) })); } app.use(passport.initialize()); app.use(passport.session()); require('./auth/passportauth.js')(passport , facebookstrategy , config , mongoose); require('./routes/routes.js')(express,app ,passport , config); /* app.listen (3000 , function(){ console.log("chatup working on port 3000"); console.log('mode:'+ env); }); */ app.set('port', process.env.port || 3000); var server = require('http').createserver(app); var io = require('socket.io').listen(server); require('./socket/socket.js')(io,rooms); server.listen(app.get('port' , function(){ console.log('chat on port : '+ app.get('port')); }))
and here chatrooms.html srcipt :-
$(function() { var host = '{{config.host}}'; var socket = io.connect(host + '/roomlist'); // http://localhost:3000/roomlist socket.on('connect', function() { console.log('connection established .. !'); }) })
json file contain "host":"http://localhost:3000"
but when run code there error :typeerror : cannot read property 'method' of undefined
console error :-
c:\users\ankur singh\desktop\node\chat app\node_modules\express\lib\router\index.js:138 debug('dispatching %s %s', req.method, req.url); ^
typeerror: cannot read property 'method' of undefined
at function.handle (c:\users\ankur singh\desktop\node\chat app\node_modules\express\lib\router\index.js:138:33)
at eventemitter.handle (c:\users\ankur singh\desktop\node\chat app\node_modules\express\lib\application.js:173:10)
at server.app (c:\users\ankur singh\desktop\node\chat app\node_modules\express\lib\express.js:38:9)
at server.g (events.js:260:16)
at emitnone (events.js:67:13)
at server.emit (events.js:166:7)
at emitlisteningnt (net.js:1263:10)
at nexttickcallbackwith1arg (node.js:444:9)
at process._tickcallback (node.js:366:17)
at module.runmain [as _ontimeout] (module.js:432:11)
at timer.listontimeout (timers.js:92:15)
how rid of error. ??
picture of : /router/index.js file :-
after 9 hours of continuous struggling. have found solution of question.
the error code :-
app.set('port', process.env.port || 3000 ); server.listen(app.get('port' , function(){ console.log('chat on port : '+ app.get('port')); }));
and correct code :-
var port = process.env.port || 3000; server.listen(port, function () { console.log('updated : server listening @ port %d', port); });
the reference link is:- correct code reference
Comments
Post a Comment