我遇到了Express.io的问题,我尝试创建一个简单的tchat。但是我无法包含socket.io.js,我收到了错误...
我刚刚在我的新Express项目上安装了Express.io。
我的错误:
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
答案 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