УЧЕБНЫЙ МАРШРУТ

От чтения к своему приложению

Новый практический маршрут к действующей документации.

1. Опишите данные без сервера

Составьте каталог из трёх книг: название, авторы, теги, год. Представьте его массивом объектов JavaScript. Отфильтруйте книги по тегу и выведите названия через map. Затем сериализуйте каталог с JSON.stringify и проверьте результат в JSON-мастерской.

Обратите внимание на границу: JSON не хранит функции, undefined и ссылки между объектами. Даты передавайте в явно выбранном строковом формате, а точные длинные идентификаторы — строками.

Для синтаксиса функций, объектов, модулей и Promise используйте MDN JavaScript Guide.

2. Проследите запрос до ответа

В руководстве Express изучите порядок middleware и маршрутов. Оно описывает Express 2; для нового приложения выберите поддерживаемую версию по действующей документации Express.

Реализуйте два маршрута: GET /books возвращает JSON, а GET /books/:id — одну книгу. Заранее решите, как отличить неверный идентификатор от отсутствующей записи. Добавьте обработчик 404 после маршрутов и отдельный обработчик ошибок. Не возвращайте пользователю стек исключения или секреты подключения.

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

3. Отделите представление от данных

Jade показывает, как отступы и вложенность превращаются в HTML. Для новой работы сопоставляйте старые примеры с документацией Pug.

Сделайте карточку книги с заголовком и списком тегов. Подставьте название <script>alert(1)</script> и убедитесь, что оно отображается как текст. Экранирование защищает контекст HTML; для URL, JSON внутри script и CSS нужны отдельные правила, а не отключение экранирования.

4. Выберите форму документа по запросам

В главе о моделировании сравните вложенный объект и ссылку на другой документ. Перед выбором запишите: что читается вместе, что обновляется независимо, как растёт массив и как ограничен размер документа.

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

5. Сведите приложение в проверяемый результат

Сохраните версию runtime и lockfile. Сборку запускайте из чистой установки зависимостей. Проверьте HTTP-статусы, тип содержимого, экранирование, пустые состояния и мобильную страницу с длинным названием.

Для модульной сборки сначала объясните себе граф зависимостей. Инструмент может измениться; связь «входной модуль → используемые зависимости → результат» остаётся полезной моделью.