Помнишь сайт, который выдавал случайную шутку про Чака Норриса при каждом запросе? Сейчас ты сделай такой же сервис, только наши шутки будут на русском языке🇷🇺😁.
Подготовься к релизам: зафоркай себе данный репозиторий, сделай клон.
После этого открой проект в WebStorm и набери в терминале npm install
. Данная команда подтянет папку node_modules
, которой нет в репозитории.
В файле index.js
напиши минимальный сервер, который выводит hello world
на 3000-м порте.
Следи за качеством кода. Правильно расставляй пробелы и отступы, разбивай разные логические блоки с помощью пустой строки.
В файле jokes.txt
находится текст с шутками о Чаке Норрисе. Каждая отдельная строка – это отдельная шутка.
Напиши функцию с именем getRandomLineFromText()
. Функция должна принимать один параметр – текст с шутками и возвращать одну случайную строку из этого текста.
Алгоритм работы данной функции будет следующим:
- разбить текст на массив (чтобы каждая строка стала отдельным элементом);
- сгенерировать случайное число от 0 до
кол-во элементов в массиве - 1
. Этим числом будет индекс случайной строки. - вернуть из функции элемент с индексом из второго пункта.
Доработай вывод сервера так, чтобы вместо hello world
он возвращал результат функции getRandomLineFromText()
. В качестве параметра в функцию нужно переть данные, полученные из файла jokes.txt
(т.е. нужно не копировать, а открывать их через код)
Проверь работу сервера с помощью Postman. Если всё верно, то при каждом запросе будет выводиться случайная шутка.
В данном релизе необходимо доработать ответ сервера.
Добавь в него заголовок о том, что тип возвращаемого контента – это JSON, а сам вывод сделай в таком виде:
{ "joke": "тут будет та самая случайная шутка" }
Проверь работу сервера с помощью Postman.
В нашем приложении не хватает возможности добавлять новые шутки.
Вспоминаем какой метод используется для добавления новых элементов на сервере... конечно же метод POST
(ты ведь вспомнил про него? да? вспомнил ведь?🤨).
Разберись как можно определить метод входящего запроса, затем доработай сервер:
- если пришел GET-запрос, то выводим случайную шутку;
- если это POST-запрос, то смотрим в тело входящего запроса. Там должен быть JSON в формате
{ "joke": "новая шутка для добавления" }
. Забираем оттуда текст новой шутки и добавляем его в конец файлаjokes.txt
.
Преобразовать тело входящего запроса из обычного текста в JavaScript-объект можно с помощью JSON.parse()
.
Проверь работу приложения с помощью Postman. Добавь новую шутку и проверь появилась ли она в конце файла jokes.txt
.
Проведи самостоятельный код-ревью.
Обрати внимание на стиль кода: пробелы, отступы, названия переменных и функций. Исправь там, где нужно.
Подумай, есть ли в коде участки, которые можно было бы вынести в отдельные функции (как например мы сделали с getRandomLineFromText()
)? Если есть вынеси их.
Добавь комментарии к каждому участку кода (вообще к каждому, даже для импортов).
Напиши клиентскую часть приложения. При каждом обновлении страницы должна появляться случайная шутка.
Добавь также кнопку, при нажатии которой шутка обновляется (без перезагрузки страницы).
Выгрузи свою работу и сделай pull request.