Node.js Can';找不到socket.io.js

Node.js Can';找不到socket.io.js,node.js,socket.io,Node.js,Socket.io,我正在制作一个web应用程序,它使用nodejs、mongodb、socket.io、express和mongoose 当浏览到本地主机时,我可以启动服务器并在浏览器中正确获取所需的html文件。 我遇到的问题是如何使socket.io正常工作。 在我的服务器端,一切正常:我在终端中得到“info-socket.io start” 但是当我浏览我的浏览器时,我会在我的浏览器控制台中看到这个 Failed to load resource: the server responded wit

我正在制作一个web应用程序,它使用nodejs、mongodb、socket.io、express和mongoose
当浏览到本地主机时,我可以启动服务器并在浏览器中正确获取所需的html文件。
我遇到的问题是如何使socket.io正常工作。 在我的服务器端,一切正常:我在终端中得到“info-socket.io start”

但是当我浏览我的浏览器时,我会在我的浏览器控制台中看到这个

    Failed to load resource: the server responded with a status of 404 (Not Found) 
    Uncaught ReferenceError: io is not defined 
这就是我连接socket.io.js的方式

    <script src="/socket.io/socket.io.js"></script>
有人知道我犯了什么错误吗

(这实际上和这里的问题是一样的:)

提前谢谢

编辑: 我在服务器端的代码如下:

    var app= require('express').createServer();
    var io = require('socket.io').listen(app);
    var mongoose = require('mongoose');
    var db = mongoose.connect('mongodb://localhost/db');

    app.listen(3030);
    console.log("server started");

    app.get('/',function(req,res){
res.sendfile(__dirname + '/public/index.html');
    });


    io.sockets.on('connection',function(socket){    
    console.log("connection made");
    });
第一个日志记录在终端(“服务器已启动”),但第二个日志(“连接已建立”)未记录。所以没有建立连接。
我认为这是因为客户端的“设置”错误。

查看快速迁移指南2->3 像这样的东西应该有用

 var express = require('express');
 var app = express();
 var http = require('http');
 var server = http.createServer(app);
 var io = require('socket.io').listen(server);
 var mongoose = require('mongoose');
 var db = mongoose.connect('mongodb://localhost/db');

 server.listen(3030);
 console.log("server started");

 app.get('/',function(req,res){
     res.sendfile(__dirname + '/public/index.html');
 });


 io.sockets.on('connection',function(socket){    
    console.log("connection made");
 });

查看快速迁移指南2->3 像这样的东西应该有用

 var express = require('express');
 var app = express();
 var http = require('http');
 var server = http.createServer(app);
 var io = require('socket.io').listen(server);
 var mongoose = require('mongoose');
 var db = mongoose.connect('mongodb://localhost/db');

 server.listen(3030);
 console.log("server started");

 app.get('/',function(req,res){
     res.sendfile(__dirname + '/public/index.html');
 });


 io.sockets.on('connection',function(socket){    
    console.log("connection made");
 });

如果问题与相同,您是否尝试过该问题的答案?能否在服务器端发布有关Socket.IO设置的代码?这里的典型问题是Socket.IO没有侦听(aka setup是错误的)文件请求。在没有看到您的代码的情况下,我们无法排除这种情况。对我来说,这通常是由于没有在域的根目录下运行应用程序造成的。这意味着它可以正常工作(),但这将导致404,而不需要对客户机代码进行一些修改(.@phihag是的,我试过了。但是从作者的回答中你可以得出结论,他们对他也不起作用。你使用的是哪个版本的express?如果问题与相同,你试过这个问题的答案吗?你能在服务器端发布关于Socket.IO设置的代码吗?这里的典型问题是Socket.IO是不侦听(aka setup是错误的)文件请求。在没有看到您的代码的情况下,我们无法排除这种情况。对我来说,这通常是由于没有在域的根目录下运行应用程序造成的。这意味着这可以正常工作(),但这将导致404,而不修改客户端代码(.@phihag是的,我试过了。但是从作者的回答中你可以得出结论,它们对他也不起作用。你使用的是哪个版本的express?哇,Chris,谢谢!这很有效。但是我必须做一些更改:前两行应该是
var express=require('express'))
var-app=express;
从那以后它就开始工作了!谢谢!哇,克里斯,谢谢!这很有效。但是我必须做一些修改:前两行应该是
var-express=require('express');
var-app=express;
从那以后它就开始工作了!谢谢!
var app = express();
app.set('port', process.env.PORT || 3000);

...

var server = http.createServer(app).listen(app.get('port'), function(){
  console.log("Express server listening on port " + app.get('port'));
});

var io = socket.listen(server);
io.sockets.on('connection', function () {
  console.log('hello world im a hot socket');
});