新人学习node.js求助
发布于 12 年前 作者 hyxhzz 5352 次预览 最后一次回复是 12 年前 来自
现在正在看《node.js入门经典》,里面有段代码不知道问什么无法执行 app.js代码如下 var express = require(‘express’);
var app = express();
var io = require('socket.io').listen(app);
app.listen(3000);
app.get('/', function (req, res){
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket){
socket.emit('welcome', {text: 'OH HAI! U R CONNECTED!'});
});
index.html代码如下 <!DOCTYPE html> <html lang=“en”> <head> <meta charset=“utf-8”/> <title>Socket.IO Express Example</title> </head> <body> <h1>Socket.IO Express Example</h1> <script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect(); socket.on(‘welcome’, function (data){ console.log(‘data.text’); }); </script>
</body>
</html>
总是报错无法找到/socket.io/socket.io.js
12 回复
新人不太懂格式,看起来有点奇怪,还请各位大神将就点看哈
/socket.io/socket.io.js 由 socket.io 模块提供。你的 socket.io 模块安装了吗?
下面这行,执行时有没有错误信息? var io = require(‘socket.io’).listen(app);
看看能不能直接取socket.io.js
http://localhost:3000/socket.io/socket.io.js
程序执行没有错误,但是看javascript的输出时会提示无法io是未定义变量
直接取也不行,提示找不到socket.io.js
@hyxhzz 是不是没有 socket.io 模块?
var sio = require(‘socket.io’);
这个语句,sio 也是没有定义吗?
@leapon 没有啊,已经用npm install下载过了
@hyxhzz io是未定义变量, 感觉就是 socket.io 没 require 近来。
@leapon 额,那个io未定义是html里面javascript的错误
socket.io网站: Express 3 requires that you instantiate a
http.Serverto attach socket.io to first:所以你的代码改一下:
var app = require(‘express’)() , server = require(‘http’).createServer(app) , io = require(‘socket.io’).listen(server);
server.listen(3000);
确实是啊,多谢啦
可能是版本的问题,node.js更新很快