РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcNdMgInr 24 of 39 menu
◀ ▶

Введение в Mongo для Node в Docker

Приложению нужна база рядом, а не установка сервера в систему. Сервер Mongo поднимают отдельным сервисом в том же файле, где описано приложение на node:24. Код Node обращается к базе по сети проекта, а не по порту на компьютере.

Файлы базы держат в именованном томе на /data/db, чтобы новый контейнер сервера не начинал с пустого диска. Пароль и учётная запись задают переменными окружения только при первом старте пустого тома. Подробности тома, конфигурации и скриптов первого запуска разбирают в учебнике Mongo.

Строка подключения собирается из имени сервиса базы, а не из localhost. Внутри проекта соседи видят сервер db и порт 27017. Приложение читает адрес из переменной окружения и передаёт его драйверу.

Пакет mongodb ставят в образ приложения шагом npm install при сборке. Сторонний слой вроде Mongoose здесь не используют: достаточно официального драйвера и встроенного модуля http для ответа на порту 3000.

Соседний сервер Mongo стартует не мгновенно. Простой порядок запуска лишь сдвигает создание контейнера приложения, а проверка здоровья ждёт ответа базы перед стартом Node. Тогда первый запрос к коллекции не падает из-за ещё не готового сервера.

Уроки раздела идут от описания сервиса до подключения скрипта и ожидания готовности. Образ сервера - mongo:8.3, образ приложения - node:24, учебный пароль - demo там, где нужна авторизация. Дамп и восстановление в этот раздел не входят.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить