Node.js nodejs、socket.io和expressjs未连接

Node.js nodejs、socket.io和expressjs未连接,node.js,express,socket.io,Node.js,Express,Socket.io,我的文件夹结构如下: socket - project - main.js -node_modules - node_modules_folder_here - text.html 我的main.js文件如下所示: var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', fu

我的文件夹结构如下:

socket
  - project
    - main.js

  -node_modules
    - node_modules_folder_here

  - text.html
我的main.js文件如下所示:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
    console.log("inside")
    res.send('<h1>Hello again</h1>');
});

io.on('connection', function(socket){
    console.log("socket")
    console.log('a user connected');
});

http.listen(3000, function(){
  console.log('listening on *:3000');
}); 
<body>
<h3>Hellooww world</h3>
<script src="/socket.io/socket.io.js"></script>
<script type="text/javascript">
  var socket = io();
  console.log("check io", socket)
</script>
</body>
</html>
My package.json类似于:

"author": "",
  "license": "ISC",
  "dependencies": {
    "babel-core": "^6.24.0",
    "babel-loader": "^6.4.0",
    "express": "^4.15.2",
    "node-fetch": "^1.6.3",
    "promise": "^7.1.1",
    "socket.io": "^1.7.3",
    "webpack": "^2.2.1",
    "xmlhttprequest": "^1.8.0"
我只是简单地遵循了
socket.io
教程,并得到了这个错误

GET file:///socket.io/socket.io.js net::ERR_FILE_NOT_FOUND
test.html:10 Uncaught ReferenceError: io is not defined
另外,如果我将此套接字服务器用于另一个项目,该如何调用它


这里的问题是什么?我只是在学习socket.io教程,我在这里误解了什么?有什么问题以及原因???

您的浏览器正在查找
file:///socket.io/socket.io.js
,它假设file://protocol,这一事实使我认为您正在直接打开html文件。 在该src字符串之后还缺少一个引号


确保您正在使用npmI加载
localhost:3000

安装socket.io。您已经安装了它。。。。我正在运行服务器,当我在html上调用它时,它在那里是正常的。它只在那里给出错误。您是否将它添加到您的包中。json?尝试添加一个引用,我看不到您正在从服务器为html文件提供服务。您需要从web服务器而不是从文件系统加载HTML文件。因此,您需要在web服务器或服务器上为HTML文件创建一个处理程序,然后需要从web服务器加载网页。没有quote是类型。。。我已经用python启动了一个开发服务器,并打开了test.html。。。现在只给出io未定义的错误。。什么是isseu?@aryan检查您的web检查器,看看请求socket.io.js的HTTP调用是否正确返回200。如果不是,则浏览器无法在执行代码之前设置socket.io。