Работа с параметрами адресной строки
Дальнейшие действия потребуют модуль url. Модуль встроен в nodejs, так что его не нужно устанавливать с nodejs.
var url = require("url");
Работа с GET-параметрами
Допустим у нас есть строка
http://test.com?page=25&foo=bar
После вопроса у нас в строке находится два GET-параметра page и foo. Для их получения нам понадобится метод url.parse . На выходе мы получаем объект parts, у которого будет два свойства parts.query.page и parts.query.foo со значениями параметров page и query
var url = require("url");
var parts = url.parse("http://test.com?page=25&foo=bar", true);
parts.query.page++;// увеличение значения GET-параметра page на единицу
Если же мы хотим получить GET-параметры из текущего url, то нам понадобится свойство request.url (request - это объект запроса в сервере)
Попробуем создать echo-сервер - то есть сервер, который будет возвращать значение GET-параметра, который мы передали
var http = require('http');
var url = require('url');
var server = http.createServer(function(req, res) {
var parts = url.parse(req.url,true);
res.writeHead(200);
res.end(parts.query.name); //выводим GET-параметр name
});
server.listen(8080);
Для проверки запускаем сервер и вводим в адресную строку браузера
localhost:8080/?name=petya
Должна вывестись страница с именем petya
Работа с pretty-urls
Иногда нам нужно считывать не GET-параметры, а извлекать путь после доменного имени
Например, у нас есть адрес
http://localhost:8080/check?login=petya
Нам нужно достать из этого адреса слово /check . В этом нам поможет строчка
var pathname = url.parse(request.url).pathname;
Дополнительные материалы: https://millermedeiros.github.io/mdoc/examples/node_api/doc/url.html
Практика:
- Создать echo-сервер. Скрипт считывает значение какого-то GET-параметра и выводит его значение.
- Сделать сервер, который получает на вход два параметра a и b и выводит их сумму.
- Сделать сервер, который выводит форму с запросом логина и пароля и кнопкой отправки. После отправки данных проверяем смог пользователь залогиниться или нет - выводим соответствующие сообщения.
- Реализовать игру угадай число. Есть форма, в которую пользователь вводит число. Есть три возможных ситуации: 1) он угадал число, тогда программа его поздравляет сообщением, 2) число пользователя меньше - выводим фразу "Меньше" и форму для ввода нового числа. 3) число пользователя больше - выводим фразу "Больше" и форму для ввода нового числа.