找不到Express.io,socket.io.js

时间:2013-03-15 03:23:00

标签: node.js express socket.io

我遇到了Express.io的问题,我尝试创建一个简单的tchat。但是我无法包含socket.io.js,我收到了错误...

我刚刚在我的新Express项目上安装了Express.io。

我的错误:

  1. 获取http:// * ** /socket.io/socket.io.js 404(未找到)
  2. localhost:1未捕获的ReferenceError:未定义io
  3. Index.jade

    doctype 5
    html
      head
        title= title
        link(rel='stylesheet', href='/stylesheets/style.css')
      body
        block content
        script(src="http://localhost:3000/socket.io/socket.io.js")
        script(src="/javascripts/user.js")
    

    app.js

    /**
     * Module dependencies.
     */
    
    var express = require('express.io')
        , index = require('./routes/index.js')
        , http = require('http')
        , path = require('path');
    
    var app = express();
    
    app.http().io();
    
    app.configure(function(){
      app.set('port', process.env.PORT || 3000);
      app.set('views', __dirname + '/views');
      app.set('view engine', 'jade');
      app.use(express.favicon());
      app.use(express.logger('dev'));
      app.use(express.bodyParser());
      app.use(express.methodOverride());
      app.use(app.router);
      app.use(express.static(path.join(__dirname, 'public')));
    });
    
    app.configure('development', function(){
      app.use(express.errorHandler());
    });
    
    app.get('/', index.index);
    
    app.io.route('ready', function(req) {
        req.io.emit('talk', {
            message: 'io event from an io route on the server'
        });
    });
    
    http.createServer(app).listen(app.get('port'), function(){
      console.log("Express server listening on port " + app.get('port'));
    });
    

    index.js(路线)

    exports.index = function(req, res){
        res.render('index', {
            title: 'TCHAT'
        });
    };
    

    user.js的

    io = io.connect();
    
    // Emit ready event.
    io.emit('ready');
    
    // Listen for the talk event.
    io.on('talk', function(data) {
        alert(data.message);
    });
    

    新错误

    无法加载资源:服务器响应状态为404(未找到)http:// * :3000 / socket.io.js 未捕获的ReferenceError:未定义io

1 个答案:

答案 0 :(得分:9)

老兄,你正在监听http服务器而不是express.io服务器。改变这个

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

到此:

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

然后您就可以访问socket.io.js