Khamzat995 / node-http-routes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Node – http – GET и POST

Summary

Помнишь сайт, который выдавал случайную шутку про Чака Норриса при каждом запросе? Сейчас ты сделай такой же сервис, только наши шутки будут на русском языке🇷🇺😁.

Releases

Подготовься к релизам: зафоркай себе данный репозиторий, сделай клон.

После этого открой проект в WebStorm и набери в терминале npm install. Данная команда подтянет папку node_modules, которой нет в репозитории.

Release 0: минимальный сервер

В файле index.js напиши минимальный сервер, который выводит hello world на 3000-м порте.

Следи за качеством кода. Правильно расставляй пробелы и отступы, разбивай разные логические блоки с помощью пустой строки.

Release 1: рандомная строка

В файле jokes.txt находится текст с шутками о Чаке Норрисе. Каждая отдельная строка – это отдельная шутка.

Напиши функцию с именем getRandomLineFromText(). Функция должна принимать один параметр – текст с шутками и возвращать одну случайную строку из этого текста.

Алгоритм работы данной функции будет следующим:

  1. разбить текст на массив (чтобы каждая строка стала отдельным элементом);
  2. сгенерировать случайное число от 0 до кол-во элементов в массиве - 1. Этим числом будет индекс случайной строки.
  3. вернуть из функции элемент с индексом из второго пункта.

Доработай вывод сервера так, чтобы вместо hello world он возвращал результат функции getRandomLineFromText(). В качестве параметра в функцию нужно переть данные, полученные из файла jokes.txt (т.е. нужно не копировать, а открывать их через код)

Проверь работу сервера с помощью Postman. Если всё верно, то при каждом запросе будет выводиться случайная шутка.

Release 2: формат JSON

В данном релизе необходимо доработать ответ сервера.

Добавь в него заголовок о том, что тип возвращаемого контента – это JSON, а сам вывод сделай в таком виде:

{ "joke": "тут будет та самая случайная шутка" }

Проверь работу сервера с помощью Postman.

Release 3: добавление новых шуток. Метод POST

В нашем приложении не хватает возможности добавлять новые шутки.

Вспоминаем какой метод используется для добавления новых элементов на сервере... конечно же метод POST (ты ведь вспомнил про него? да? вспомнил ведь?🤨).

Разберись как можно определить метод входящего запроса, затем доработай сервер:

  • если пришел GET-запрос, то выводим случайную шутку;
  • если это POST-запрос, то смотрим в тело входящего запроса. Там должен быть JSON в формате { "joke": "новая шутка для добавления" }. Забираем оттуда текст новой шутки и добавляем его в конец файла jokes.txt.

Преобразовать тело входящего запроса из обычного текста в JavaScript-объект можно с помощью JSON.parse().

Проверь работу приложения с помощью Postman. Добавь новую шутку и проверь появилась ли она в конце файла jokes.txt.

Release 4: code refactoring

Проведи самостоятельный код-ревью.

Обрати внимание на стиль кода: пробелы, отступы, названия переменных и функций. Исправь там, где нужно.

Подумай, есть ли в коде участки, которые можно было бы вынести в отдельные функции (как например мы сделали с getRandomLineFromText())? Если есть вынеси их.

Добавь комментарии к каждому участку кода (вообще к каждому, даже для импортов).

Release 5: клиентский код (опционально)

Напиши клиентскую часть приложения. При каждом обновлении страницы должна появляться случайная шутка.

Добавь также кнопку, при нажатии которой шутка обновляется (без перезагрузки страницы).

Conclusion

Выгрузи свою работу и сделай pull request.

About


Languages

Language:JavaScript 100.0%