遗漏的类型错误:对象# 没有方法“连接”(Uncaught TypeError: Object

2019-07-29 09:34发布

所以,我没有npm install expressnpm install socket.io和我带来的node_modules文件夹到我的server文件夹中,我使用WAMP

以此为server.js

var app = require('express').createServer();
var io = require('socket.io').listen(app);

io.sockets.on('connection', function (socket) {
console.log('Someone connected!');
socket.on('set nickname' , function (nickname) {
socket.nickname = nickname;
console.log(nickname + ' just connected!');
});

});

app.listen(8080);

并以此为client.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <title>Untitled 4</title>
<script src="http://cdn.socket.io/stable/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost:8080');
  socket.on('connect', function () {
    console.log('We are connected!');
var name = prompt('What is your name?');
this.emit('set namename', name, function (success) {
console.log('The server got the message!');

if (!success) {
console.log('Nickname is in use!');
}
});
});
</script>
</head>
<body>

</body>
</html>

我得到的错误是Uncaught TypeError: Object #<Object> has no method 'connect'

我知道我比使用一个不同的socket.io.js becase的,我不知道从哪里得到的/socket.io/socket.io.js 。 我试图做node_modules/socket.io/lib/socket.io.js这是另外一个我发现我我node_modules文件夹,但不是它。

我也开始我的server和我socket.io started ,所以我知道的作品。

Answer 1:

你有这个错误是因为socket.io脚本(进入的index.html)的来源是错误的。 因此,改变这种:

<script src="http://cdn.socket.io/stable/socket.io.js"></script>

在此:

<script src="http://localhost:3000/socket.io/socket.io.js"> </script>

是的,socket.io是一个文件夹到根服务器目录和我的服务器端套接字正在侦听端口3000。



文章来源: Uncaught TypeError: Object # has no method 'connect'