Node. JS для решения задач

В этом разделе предлагаются задачи по теме AJAX.

Конечно же, они требуют взаимодействия с сервером. Мы будем использовать серверную часть, написанную на JavaScript, на Node. JS.

Если вы не использовали Node. JS ранее – не беспокойтесь. Здесь нашей целью является преимущественно клиентская часть, поэтому прямо сейчас изучать Node. JS не обязательно. Серверные скрипты уже готовы. Нужно только поставить Node. JS и модули, чтобы их запускать.

Установка

Для настройки окружения будет достаточно сделать два шага:

Сначала установите сам сервер Node. JS.

Если у вас Unix-система – рекомендуется собрать последнюю версию из исходников, а также NPM. Вы справитесь.

Если Windows – посетите сайт http://nodejs. org или скачайте установщик (32 или 64-битный) с расширением. msi из http://nodejs. org/dist/latest/.

Выберите директорию, в которой будете решать задачи. Запустите в ней:

npm install node-static

Это установит в текущую директорию модуль node-static, который станет автоматически доступным для скриптов из поддиректорий.

Если у вас Windows и команда не сработала, то скорее всего дело в том, что «не подхватились» новые пути. Перезапустите ваш файловый менеджер или консоль.

Проверка

Проверьте инсталяцию.

Для этого:

Создайте какую-нибудь поддиректорию и в ней файл server. js с таким содержимым:

var http = require('http');

var static = require('node-static');

var file = new static. Server('.');

http. createServer(function(req, res) {

  file. serve(req, res);

}).listen(8080);

console. log('Server running on port 8080');

Запустите его: node server. js.

Должно вывести:

Server running on port 8080

Нельзя запустить больше одного сервера одновременно!

При попытке запуска двух серверов (например, в разных консолях) – будет конфликт портов и ошибка.

Откройте в браузере http://127.0.0.1:8080/server. js.

Должно вывести код файла server. js.

Если всё работает – отлично, теперь вы готовы решать задачи.

Примеры

В примерах, за редким исключением, для краткости будет приводиться не полный скрипт на Node. JS, а только код обработки запроса.

Например, вместо:

var http = require('http');

var url = require('url');

var querystring = require('querystring');

function accept(req, res) {

  res. writeHead(200, {

  'Content-Type': 'text/plain',

  'Cache-Control': 'no-cache'

  });

  res. end("OK");

}

http. createServer(accept).listen(8080);

…Будет только функция accept, или даже только её содержимое:

res. writeHead(200, {

  'Content-Type': 'text/plain',

  'Cache-Control': 'no-cache'

});

Основные методы

В функции accept используются два объекта:

req – объект запроса («request»), то есть то, что прислал клиент (обычно браузер), из него читаем данные.

res – объект ответа («response»), в него пишем данные в ответ клиенту.

вызов res. writeHead(HTTP-код, [строка статуса], {заголовки}) пишет заголовки.

вызов res. write(txt) пишет текст в ответ.

вызов res. end(txt) – завершает запрос ответом.