Я новичок в node.js и нашел простой учебник по настройке простого сервера node.js. Я пытаюсь отобразить html-страницу на стороне клиента, я получаю файл, который я вижу на консоли, но браузер показывает пустую страницу? Это мой server.js файл:Node.js возвращает пустой HTML-файл клиенту
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;
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("Oops, this doesn't exist! - 404");
}
else {
response.writeHead(200, {"Content-Type": "text/html"});
response.write(data, "utf8");
console.log('Connection working!');
}
});
break;
default:
response.writeHead(404);
response.write("Oops, this doesn't exist - 404");
break;
}
response.end();
});
server.listen(8001);
Вот мой простой HTML-файл socket.html
<!DOCTYPE html>
<html>
<head></head>
<body>
<div>
<h1>This is the socket.html file</h1>
</div>
</body>
</html>
И мой ответ в браузере:
Я дважды проверил, что я правильно использую модули «url» и «fs», которые, как мне кажется, я делаю? Может ли кто-нибудь помочь?
Перемещение'response.end() дать мне эту ошибку в console.log: 'GET HTTP: // локальный: 8001/socket.html сетка :: ERR_CONNECTION_REFUSED' –
Это не должно быть вызвано этим , Вы говорите, что получаете это в консоли сервера? – MiniGod
Я переместил 'response.end()' в значение по умолчанию, и теперь он работает! Но логически я не понимаю, почему именно. Если я первый «случай» верен, мне еще не нужен «response.end()»? –