谁能告诉我出现这个错误是为什么?
发布于 10 年前 作者 veeking 4003 次浏览 最后一次编辑是 8 年前
照着nodejs实战 书中的用nodejs + angularjs + socket + mongodb 弄得一个聊天程序,不知道怎么回事出现这个问题,是session的原因?

d:\Coding\My sites T\绉掑井璇惧爞瀛︿範\demo\nodeT\node API\mean_talk\node_modul
es\connect\lib\utils.js:232 **return 0 == str.indexOf(‘s:’) ** ^ **TypeError: Cannot call method ‘indexOf’ of undefined\n ** at exports.parseSignedCookie (d:\Coding\My sites T\绉掑井璇惧爞瀛︿範\demo\n odeT\node API\mean_talk\node_modules\connect\lib\utils.js:232:19) at messages (d:\Coding\My sites T\绉掑井璇惧爞瀛︿範\demo\nodeT\node API\mea n_talk\app.js:86:16) at Array.0 (d:\Coding\My sites T\绉掑井璇惧爞瀛︿範\demo\nodeT\node API\mean _talk\node_modules\socket.io\lib\index.js:117:7) at run (d:\Coding\My sites T\绉掑井璇惧爞瀛︿範\demo\nodeT\node API\mean_tal k\node_modules\socket.io\lib\namespace.js:114:11) at Namespace.run (d:\Coding\My sites T\绉掑井璇惧爞瀛︿範\demo\nodeT\node AP I\mean_talk\node_modules\socket.io\lib\namespace.js:126:3) at Namespace.add (d:\Coding\My sites T\绉掑井璇惧爞瀛︿範\demo\nodeT\node AP I\mean_talk\node_modules\socket.io\lib\namespace.js:155:8) at Client.connect (d:\Coding\My sites T\绉掑井璇惧爞瀛︿範\demo\nodeT\node A\n PI\mean_talk\node_modules\socket.io\lib\client.js:67:20) at Server.onconnection (d:\Coding\My sites T\绉掑井璇惧爞瀛︿範\demo\nodeT\n ode API\mean_talk\node_modules\socket.io\lib\index.js:307:10) at Server.EventEmitter.emit (events.js:95:17) at Server.handshake (d:\Coding\My sites T\绉掑井璇惧爞瀛︿範\demo\nodeT\node API\mean_talk\node_modules\socket.io\node_modules\engine.io\lib\server.js:250:8 )

9 回复

变量str可能没有值吧, 最好是找个调试工具进行调试,这样你会学习的更快

str是null,node的debug确实让人头疼,这里根本就看不出错误,只能一步步调试

能推荐一个调试工具吗?

利用socket.io 设置了cookie之后 ,就会出现这个报错,/n io.set(‘authorization’, function(handshakeData, accept) { }) ,删掉就没事 ,不知道为什么??

这里的问题还是挺容易看出来的吧。 TypeError: Cannot call method ‘indexOf’ of undefined — 不能调用undefined的indexOf方法。

结合这个: return 0 == str.indexOf(‘s:’) ^ 应该知道个大概齐。

@veeking node-inspector这个比较好用,在浏览器中两个标签页一个调试前端一个调试后端。

@GuoZhang 我解决了,重新设置了一下session和cookie 重启服务器就OK了, 估计是cookie解析的时候出了问题!~~~~

@veeking 同时苦逼的人,握爪啊。

回到顶部