В этом разделе предлагаются задачи по теме AJAX.
Конечно же, они требуют взаимодействия с сервером. Мы будем использовать серверную часть, написанную на JavaScript, на Node.JS.
Если вы не использовали Node.JS ранее – не беспокойтесь. Здесь нашей целью является преимущественно клиентская часть, поэтому прямо сейчас изучать Node.JS не обязательно. Серверные скрипты уже готовы. Нужно только поставить Node.JS и модули, чтобы их запускать.
Установка
Для настройки окружения будет достаточно сделать два шага:
-
Сначала установите сам сервер Node.JS.
Если у вас Unix-система – рекомендуется собрать последнюю версию из исходников, а также NPM. Вы справитесь.
Если Windows – посетите сайт https://nodejs.org или скачайте установщик (32 или 64-битный) с расширением
.msi
из https://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)
– завершает запрос ответом.
- вызов
Демо
Кроме просмотра кода, можно будет попробовать и скачать различные демки.
Вот пример демо, можете попробовать нажать на кнопку – она работает.
Если хотите посмотреть пример поближе и поиграть с ним – скачайте архив (кнопка справа-сверху в примере выше), он будет работать и на вашем Node.JS.
Больше о Node.JS
Больше о сервере Node.JS можно узнать в скринкасте по Node.JS.