gpt4 book ai didi

node.js - 如何查看 socket.html 的输出?

转载 作者:搜寻专家 更新时间:2023-10-31 23:27:27 26 4
gpt4 key购买 nike

我是 node.js 的新手。我正在尝试实现 danielnill example教程

server.js

var http = require("http");
var url = require('url');
var fs = require('fs');
var io = require('socket.io');

var server = http.createServer(function(request, response){
console.log('Connection');
var path = url.parse(request.url).pathname;

switch(path){
case '/':
response.writeHead(200, {'Content-Type': 'text/html'});
response.write('hello world');
break;
case 'socket.html':
fs.readFile(__dirname + path, function(error, data){
if (error){
response.writeHead(404);
response.write("opps this doesn't exist - 404");
}
else{
response.writeHead(200, {"Content-Type": "text/html"});
response.write(data, "utf8");
}
});
break;
default:
response.writeHead(404);
response.write("opps this doesn't exist - 404");
break;
}
response.end();
});

server.listen(8001);

io.listen(server);

socket.html

<html>
<head>
<script src="/socket.io/socket.io.js"></script>
</head>
<body>
<script>
var socket = io.connect();
</script>
<div>This is our socket.html file</div>
</body>
</html>

每当我尝试从浏览器运行此 http://localhost:8001/socket.html url 时。它转到默认大小写,而不是转到“socket.html”大小写。

请帮我在这个例子中执行'socket.html'案例。

最佳答案

您发布的内容有两个问题:

  1. 当 URL http://localhost:8001/socket.html 是时,path 变量等于 /socket.html请求,而不是 socket.html;您需要相应地更新案例陈述。

  2. fs.readFile 回调将无法将响应写回客户端(浏览器),因为 response.end(); 将已经被调用;您需要将 response.end() 移动到每个 case 语句中。

这是更新后的代码:

var http = require("http");
var url = require('url');
var fs = require('fs');
var io = require('socket.io');

var server = http.createServer(function(request, response){
console.log('Connection');
var path = url.parse(request.url).pathname;

switch(path){
case '/':
response.writeHead(200, {'Content-Type': 'text/html'});
response.write('hello world');
response.end();
break;
case '/socket.html':
fs.readFile(__dirname + path, function(error, data){
if (error){
response.writeHead(404);
response.write("opps this doesn't exist - 404");
}
else{
response.writeHead(200, {"Content-Type": "text/html"});
response.write(data, "utf8");
}
response.end();
});
break;
default:
response.writeHead(404);
response.write("opps this doesn't exist - 404");
response.end();
break;
}
});

server.listen(8001);

io.listen(server);

关于node.js - 如何查看 socket.html 的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23471429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com