Мы должны создать простой сервер узлов HTTP, который должен ответить на запрос root-url с помощью файла index.html. Не используйте ExpressJS. Код должен иметь проверку ошибок и, по крайней мере, один обратный вызов. Поместите пять или более элементов html в ваш index.html. Один из элементов должен быть ссылкой на внешнюю страницу.Получение ошибки привязки при попытке запуска HTTP-узла узла
Это код у меня есть:
var http = require("http");
var fs = require('fs');
var index = fs.readFileSync('index.html');
var server = http.createServer(function(request, response) {
fs.exists(index, function(exists) {
try {
if(exists) {
response.writeHead(200, {"Content-Type": "text/html"});
response.write("<html>");
response.write("<head>");
response.write("<title>Hello World!</title>");
response.write("</head>");
response.write("<body>");
response.write("<div>");
response.write("Hello World!");
response.write("</div>");
response.write("<a href='http://www.google.com' target='_blank'>Google</a>")
response.write("</body>");
response.write("</html>");
} else {
response.writeHead(500);
}
} finally {
response.end(index);
}
});
});
server.listen(80);
console.log("Server is listening");
И я получаю эту ошибку связывания:
Сервер прослушивает
fs.js:166
binding.stat(pathModule._makeLong(path), cb);
^
TypeError: path must be a string
at Object.fs.exists (fs.js:166:11)
at Server.<anonymous> (/Users/rahulsharma/Desktop/server.js:8:4)
at Server.emit (events.js:98:17)
at HTTPParser.parser.onIncoming (http.js:2112:12)
at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:121:23)
at Socket.socket.ondata (http.js:1970:22)
at TCP.onread (net.js:527:27)
Любые мысли?
Спасибо за это, но я немного запутался - разве fs.exists, используемые для тестирования, путь к файлу верен или нет? Чтение через API ничего не предполагает иначе? –
В узле программа не дает ошибку, когда файл не существует, на самом деле он устанавливает неопределенную переменную. Поэтому, читая файл с fs.readFileSync(), если индекс установлен на неопределенный, он не существует, иначе вы знаете, что делать. – pratiklodha