Javascript Node.js HTTP Web服务器结束后写入错误
我是node.js的新手,一直在尝试只设置一个基本服务器 我运行了下面的代码,并得到一个“结束后写入”错误 html是一个基本的html文件,其正文中有一个hello world字符串。该文件中几乎没有其他内容。我尝试过使用“ReadFileSync”方法,但这会引发一系列我不完全理解的全新错误 我将非常感谢在这方面的任何帮助。我是新来的,所以请对我放松一点:)提前谢谢你 我已经验证了路径是正确的,并且缓冲区中确实有数据Javascript Node.js HTTP Web服务器结束后写入错误,javascript,node.js,sockets,websocket,socket.io,Javascript,Node.js,Sockets,Websocket,Socket.io,我是node.js的新手,一直在尝试只设置一个基本服务器 我运行了下面的代码,并得到一个“结束后写入”错误 html是一个基本的html文件,其正文中有一个hello world字符串。该文件中几乎没有其他内容。我尝试过使用“ReadFileSync”方法,但这会引发一系列我不完全理解的全新错误 我将非常感谢在这方面的任何帮助。我是新来的,所以请对我放松一点:)提前谢谢你 我已经验证了路径是正确的,并且缓冲区中确实有数据 var http = require('http'); var url =
var http = require('http');
var url = require('url');
var fs = require('fs');
var server = http.createServer(function(request, response){
console.log('Connection');
var path = url.parse(request.url).pathname.substr(1);
path = "\\" + path;
switch(path){
case '/':
response.writeHead(200, {'Content-Type': 'text/html'});
response.write('hello world');
break;
case '\\socket.html':
//console.log(path);
fs.readFile(__dirname + path, function(error, data){
if(error){
response.writeHead(404);
response.write("This domain is missing");
}
else{
console.log(data);
response.writeHead(200, {"Content-Type": "text/html"});
response.write(data,"utf8");
}
});
break;
default:
response.writeHead(404);
response.write("This domain is missing");
break;
}
response.end();
});
服务器监听(8001) 我认为当您从文件系统异步读取时,在
response.write()
之前调用response.end()
方法,我建议使用以下代码:
var http = require('http');
var url = require('url');
var fs = require('fs');
var server = http.createServer(function(request, response) {
var path = url.parse(request.url).pathname.substr(1);
path = "\\" + path;
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("This domain is missing");
} else {
response.writeHead(200, {"Content-Type": "text/html"});
response.write(data, "utf8");
}
response.end();
});
break;
default:
response.writeHead(404);
response.write("This domain is missing");
response.end();
break;
}
});
谢谢你,卢卡!这解决了我的问题!我觉得这和async Fs.read有关,但因为我是新手,我不知道该如何处理。我很高兴能帮助你:)嘿@Luca!我遇到了另一个节点问题。我正在学习诀窍,我不完全清楚为什么会出现一些错误。我在上贴了一个新问题:你能帮我看看吗?提前谢谢!