30 задач — пиши код прямо в браузере, тесты проверяются автоматически
Создаём первый HTTP-сервер на Express и отвечаем на GET-запрос.
Читаем :id из URL и находим нужный объект в массиве.
Принимаем данные в теле POST-запроса и создаём новый объект.
Принимаем email через POST, проверяем формат и возвращаем результат.
Читаем параметры из строки запроса (?q=node&limit=5) и фильтруем данные.
Узнаём смысл кодов ответа и возвращаем правильный статус в каждой ситуации.
Читаем Bearer-токен из заголовка Authorization и проверяем доступ.
Принимаем сырые данные и возвращаем преобразованный объект.
Реализуем создание, чтение и удаление задач с хранением в памяти.
Создаём промежуточные обработчики для логирования и валидации.
Перехватываем и нормализуем ошибки — синтаксические, валидационные, системные.
Ограничиваем количество запросов от одного клиента за промежуток времени.
Строим in-memory кеш: простой, с TTL и инвалидацией — и перестаём мучить базу одинаковыми запросами.
Почему offset-пагинация ломается на живых данных и как курсор «после id N» решает проблему дублей и пропусков.
Клиент ретраит POST /api/payments при таймауте — и деньги списываются дважды. Чиним через Idempotency-Key.
Платёжный провайдер шлёт колбэки на твой сервер. Принимаем события, проверяем подпись, не применяем дважды.
Строим полноценный CRUD API шаг за шагом: GET, POST, PATCH, DELETE — с тестами в браузере.
Маркетингу нужны короткие ссылки для постов и статистика переходов. Строим API: генерация кодов, 302-редирект, счётчик кликов, топ ссылок.
В приложении заметок их стали сотни — список больше нельзя отдавать целиком. Строим GET-эндпоинт с поиском, тегами, сортировкой и пагинацией через query-параметры.
Мерч-магазин StudyCode: каталог, корзина, оформление заказа. Сервер сам считает сумму, проверяет остатки и ведёт статусы заказов — фронту доверять нельзя.
SaaS «Планёрка» выходит из беты: нужны аккаунты. Регистрация с хешем пароля, вход с токеном, middleware-охранник и разница между 401, 403 и 404.
Командный чат «Планёрки»: сообщения, инкрементальный поллинг, комнаты и защита от спама. В финале — настоящий WebSocket-сервер на ws.
Твой сервер ходит в чужой API, а тот падает, тормозит и берёт деньги за каждый вызов. Учимся оборачивать, ретраить, кешировать и деградировать красиво.
Командный блог StudyCode: читатели, авторы и админ. Черновики, публикация, модерация комментариев — и middleware, который решает, кому что можно.
Ночь, прод, пять тикетов от саппорта. Сервер задач глючит: дубли, пропажи, 500-ки. Найди баги по симптомам и почини минимальным диффом.
POST /api/login — форма входа отправляет email и пароль, сервер проверяет и возвращает токен или 401.
POST /api/register — пользователь заполняет форму, сервер валидирует поля и создаёт аккаунт.
GET /api/products?q=... — форма отправляет поисковый запрос, сервер фильтрует список товаров.
POST /api/todos — форма создаёт новую задачу, сервер назначает id и возвращает объект.
POST /api/calculate — фронтенд отправляет два числа и операцию, бекенд вычисляет и возвращает результат.