Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

// все данные, которые получит от него.

var net = require('net');

var server = net.createServer;

server.listen(2000, function {
console.log("Прослушивается порт 2000");
});

server.on("connection", function(stream) {

console.log("Принято соединение от", stream.remoteAddress);

stream.on("data", function(data) { stream.write(data); });

stream.on("end", function(data) { console.log("Соединение закрыто"); });

});

В дополнение к базовому модулю «net» в интерпретаторе Node имеется встроенная поддержка протокола HTTP в виде модуля «http». Особенности его использования демонстрируют примеры, следующие ниже.

12.2.1. Пример использования Node: HTTP-сервер

В примере 12.2 приводится реализация простого HTTP-сервера, основанная на особенностях интерпретатора Node. Она обслуживает файлы в текущем каталоге и дополнительно реализует два адреса URL специального назначения, которые обслуживаются особым образом. В этой реализации используется модуль «http», входящий в состав интерпретатора Node, и применяются API доступа к файлам и потокам ввода/вывода, демонстрировавшиеся выше. В примере 18.17, в главе 18, демонстрируется аналогичный специализированный НТТР-сервер.

Пример 12.2. HTTP-сервер, основанный на особенностях Node

// Простой NodeJS HTTP-сервер, обслуживающий файлы в текущем каталоге

// и реализующий два специальных адреса URL для нужд тестирования.

// Подключение к серверу выполняется по адресу http://localhost;8000

// или http://127.0-0.1:8000

// Сначала необходимо загрузить используемые модули

var http = require( http'); // API НТТР-сервера

var fs = require('fs'); // Для работы с локальными файлами

var server = new http.Server; // Создать новый HTTP-сервер

server.listen(8000); // Прослушивать порт 8000.

// Для регистрации обработчиков событий в Node используется метод "оп".

// Когда сервер получает новый запрос, для его обработки вызывается функция,

server.on("request", function (request, response) {

// Выполнить разбор адреса URL

var url = require("url").parse(request.url);

// Специальный адрес URL, который вынуждает сервер выполнить задержку перед ответом.

// Это может быть полезно для имитации работы с медленным сетевым подключением,

if (url.pathname === "/test/delay") {

// Величина задержки определяется из строки запроса

// или устанавливается равной 2000 миллисекунд

var delay = parseInt(url.query) || 2000;

// Установить код состояния и заголовки ответа

response.writeHead(200, {"Content-Type": "text/plain; charset=UTF-8 "});

// Начать отправку ответа немедленно

response.write("Задержка на " + delay + " миллисекунд...”);

// А затем завершить другой функцией, которая будет вызвана позже.

setTimeout(function {

response.write("roTOBO.");

  • Читать дальше
  • 1
  • ...
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: