新人学习node.js求助
发布于 11 年前 作者 hyxhzz 4730 次浏览 最后一次编辑是 8 年前

现在正在看《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);

程序执行没有错误,但是看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.Server to 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更新很快

回到顶部