【问题标题】:Node.js simplest code not workingNode.js 最简单的代码不起作用
【发布时间】:2014-01-28 12:52:54
【问题描述】:

因为我是 Node.js 的新手,并且正在从不同的文章中学习。所以,到目前为止我已经了解到,我的代码是

在服务器端使用 app.js

var http = require('http');

var app = http.createServer(function(req,res)
{
    req.on('end',function()
    {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end('Hello');
    });
});

var io = require('socket.io').listen(app);

io.sockets.on('connection',function(socket)
{
    socket.emit('connect',{msg:'Hello Client'});
    socket.on('client_Says',console.log);
});

app.listen(3000);

在客户端使用 index.html

<script type="text/javascript" src="//localhost:3000/socket.io/socket.io.js"></script>
<script type="text/javascript">
var socket = io.connect('//localhost:3000');
socket.on('connect',function(data)
{
    alert('Server says '+data.msg);
    socket.emit('client_Says',{data:'Hello Server'});
});
</script>

我在上面的代码中做错了什么?当我在控制台中运行 app.js 时,它显示 info - socket.io started 但是当我运行 http://localhost:3000 时它只是继续请求服务器。

另外我想知道,在我的电脑上的任何地方,我都会为 Node 创建文件夹并将 app.jsindex.html 文件放在上面它并在浏览器中运行 http://localhost:3000 会在 Node 控制台中运行 app.js 后自动将该文件夹作为本地主机的站点文件夹?

【问题讨论】:

    标签: javascript html node.js websocket socket.io


    【解决方案1】:

    在你的 app.js 中更新代码到这个

     var http = require('http'),
         fs = require('fs'), //<--- File Module
         index = fs.readFileSync(__dirname + '/index.html');
    
     var app = http.createServer(function(req,res)
     {
          res.writeHead(200, {'Content-Type': 'text/html'}); //<-Updated to text/html
          res.end(index); //<---I am sending page
     });
    

    希望能解决你的问题

    【讨论】:

    • 现在浏览器打开页面并写入 Hello 但没有显示警报,因为我在 index.html 中编码
    • 那么您应该更新您的代码并在创建服务器时发送 index.html。查找我已更新的代码。建议在socket.io/#how-to-use
    【解决方案2】:

    你不应该在服务器端这样做:

    socket.emit('connect',{msg:'Hello Client'});
    

    因为connect 是一个默认事件,它在从服务器成功连接时发出。因此,当客户端连接时,服务器会触发其默认的“连接”事件,但在这里您也会触发名为 connect 的事件,这可能会导致问题。

    【讨论】:

    • 谢谢@M Omary。我不知道这个
    猜你喜欢
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多