Всем привет! В этом материале рассмотрим, как отправлять HTML страницы клиенту, используя потоки в NodeJS .

NodeJS. Потоковый вывод HTML страницы.

Всем привет! В этом материале рассмотрим, как отправлять HTML страницы клиенту, используя потоки в NodeJS.

В прошлой статье, как вы помните, мы написали достаточно простой сервер, использующий pipe() метод, чтобы напрямую в потоке отправлять данные. Там мы считывали данные из текстового файлика, а теперь давайте попробуем отобразить таким образом HTML страницу.

Чтобы отобразить HTML страницу, нужно создать HTML страницу. Давайте это и сделаем.

Создайте index.html файл и вставьте туда следующий код:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>NodeJS Website</title>
  <style>
   body {
    background: skyblue;
    font-family: verdana;
    color: #fff;
    padding: 30px;
   }

   h1 {
    font-size: 48px;
    text-transform: uppercase;
    letter-spacing: 2px;
    text-align: center;
   }

   p {
    font-size: 16px;
    text-align: center;
   }
  </style>
</head>
<body>
  <h1>Добро пожаловать на самый продвинутый веб-сайт в интернете</h1>
  <p>Вы нигде не найдете веб-сайта лучше, чем наш!</p>
</body>
</html>

Теперь, когда HTML страница готова, давайте ее выведем.

Для этого нам нужно в нашем предыдущем коде сервера изменить text/plain на text/html, чтобы браузер понимал, что нужно отрисовывать страницу, а не просто выводить содержимое как текст, и написать новый путь до файла. Итоговый код будет выглядеть примерно так:

var server = http.createServer(function(request, response) {
  response.writeHead(200, {'Content-Type': 'text/html'});
  var myReadStream = fs.createReadStream(__dirname + '/index.html', 'utf8');
  myReadStream.pipe(response);
});

server.listen(3000, '127.0.0.1');
console.log('Прослушивание порта 3000');

Запустите приложение, и вы увидите, что наша HTML страничка успешно отобразилась.

А на этом сегодня все. Спасибо за внимание!