В этом руководстве я покажу вам, как начать использовать MongoDB и Node.js с нуля. В сегодняшней статье мы подключимся к базе данных MongoDB с помощью сценария Node.js, получим список баз данных и выведем результаты на консоль.

подключиться к mongodb с помощью node.js

* Шаги для подключения к базе данных MongoDB с помощью Node.js

Нам нужно убедиться, что вы сделали несколько основных шагов, прежде чем мы начнем.

Во-первых, убедитесь, что у вас есть поддерживаемая версия Node.js. Для текущей версии драйвера MongoDB Node.js требуется Node 4.x или выше. Для этих примеров я использовал Node.js 14.15.4. Дополнительную информацию о том, какая версия Node.js требуется для каждой версии драйвера Node.js, см. в Документации по совместимости с MongoDB.

* Давайте установим драйвер MongoDB Node.js

Драйвер MongoDB Node.js упрощает работу с базами данных MongoDB из приложений Node.js. Чтобы подключиться к вашей базе данных и выполнить запросы, обсуждаемые в этой серии «Быстрый старт», вам понадобится драйвер.

Если у вас еще не установлен драйвер MongoDB Node.js, используйте для этого следующую команду.

ТАКЖЕ ПРОЧИТАЙТЕ: Установка и настройка MongoDB на Android

npm install mongodb

Этот драйвер был установлен с версией 3.6.4 на момент написания. Текущий номер версии драйвера можно узнать, запустив

npm list mongodb

См. официальную документацию для получения дополнительной информации о драйвере и установке.

Загрузите образцы данных в бесплатный кластер MongoDB Atlas.

После этого вам потребуется база данных MongoDB. Atlas, полностью управляемая база данных как услуга MongoDB, — это самый простой способ начать работу с MongoDB.

Чтобы начать работу, перейдите в Atlas и создайте новый кластер, используя уровень бесплатного пользования. Кластер — это совокупность компьютеров, на которых хранятся копии вашей базы данных на высоком уровне. Загрузите данные примера на свой уровень после его создания. Если вы не знаете, как создать новый кластер и загрузить образцы данных.

Получить сведения о подключении к кластеру

Последний шаг — подготовить кластер к подключению.

Перейдите к своему кластеру в Atlas и нажмите ПОДКЛЮЧИТЬСЯ. На экране отобразится мастер подключения к кластеру.

Если вы еще этого не сделали, мастер предложит вам добавить ваш текущий IP-адрес в список доступа IP и создать пользователя MongoDB. Запомните имя пользователя и пароль нового пользователя MongoDB, потому что они понадобятся вам позже.

ТАКЖЕ ПРОЧИТАЙТЕ: Упрощенный Nodejs

Затем мастер попросит вас выбрать способ подключения. Connect Your Application — это вариант на выбор. Выберите Node.js и 3.6 или более позднюю версию, когда мастер попросит вас выбрать версию драйвера. Скопируйте предоставленную строку подключения.

* Подключиться к базе данных с помощью Node.js

Теперь пришло время кодировать, когда все настроено! Давайте создадим скрипт Node.js, который подключается к вашей базе данных и отображает список баз данных вашего кластера.

Необходимо импортировать MongoClient.

MongoClient — это экспорт из модуля MongoDB, который мы будем использовать для подключения к базе данных MongoDB. Мы можем подключиться к кластеру, получить доступ к базе данных в этом кластере и завершить соединение с этим кластером с помощью экземпляра MongoClient.

const {MongoClient} = require('mongodb');

Создайте нашу основную функцию

Давайте создадим асинхронную функцию с именем main(), где мы будем подключаться к нашему кластеру MongoDB, вызывать функции, которые запрашивают нашу базу данных, и отключаться от нашего кластера.

async function main() { // we'll add code here soon }

Внутри main() первое, что нам нужно сделать, это создать константу для нашего URI соединения. URI подключения — это строка подключения, которую вы скопировали в предыдущем разделе и вставили в Atlas. Не забудьте изменить имя пользователя› и пароль› на учетные данные пользователя, созданного в предыдущем разделе, при вставке строки подключения. В строку подключения включен заполнитель dbname›. В этих примерах мы будем использовать образец базы данных airbnb, поэтому замените dbname› на образец airbnb.

Обратите внимание, что имя пользователя и пароль в строке подключения не совпадают с вашими учетными данными Atlas.

/** * Connection URI. Update <username>, <password>, and <your-cluster-url> to reflect your cluster. * See https://docs.mongodb.com/ecosystem/drivers/node/ for more details */ const uri = "mongodb+srv://<username>:<password>@<your-cluster-url>/test?retryWrites=true&w=majority";

Создание экземпляра MongoDB

Теперь, когда у нас есть наш URI, мы можем создать экземпляр MongoClient.

const client = new MongoClient(uri);

Примечание. При запуске этого кода вы можете заметить предупреждения об устаревании, окружающие анализатор строки URL-адреса и механизм обнаружения и мониторинга сервера. Если вы столкнулись с этими предупреждениями, вы можете отключить их, указав параметры MongoClient. Например, вы можете запустить новый MongoClient(uri, useNewUrlParser: true, useUnifiedTopology: true), чтобы создать MongoClient. Дополнительную информацию об этих параметрах см. в Документации Node.js MongoDB Driver API.

Теперь мы готовы подключиться к нашему кластеру с помощью MongoClient. Обещание будет возвращено client.connect(). Когда мы используем client.connect(), мы будем использовать ключевое слово await, чтобы обозначить, что мы не должны ничего делать, пока эта операция не будет завершена.

await client.connect();

Работа с нашей базой данных

Теперь мы готовы работать с нашей базой данных. Давайте создадим функцию, которая сообщает имена баз данных в этом кластере. Чтобы повысить удобочитаемость вашего программного обеспечения, иногда полезно поместить эту логику в хорошо названные функции. Когда мы узнаем, как создавать различные типы запросов, мы будем создавать новые функции, идентичные той, которую мы создаем здесь на протяжении всей этой серии. Давайте пока вызовем метод listDatabases().

Также читайте: «Клон веб-сайта Tesla с помощью React.js | Исходный код"

await listDatabases(client);

Давайте завершим наши вызовы функций, взаимодействующих с базой данных, в оператор try/catch, чтобы мы могли обрабатывать любые непредвиденные ошибки.

try { await client.connect(); await listDatabases(client); } catch (e) { console.error(e); }

Мы хотим быть уверены, что закроем соединение с нашим кластером, поэтому закончим нашу попытку/поймать оператором finally.

finally { await client.close(); }

Как только мы напишем нашу функцию main(), нам нужно ее вызвать. Отправим ошибки в консоль.

main().catch(console.error);

Собрав все вместе, наша функция main() и наш вызов к ней будут выглядеть примерно так.

async function main(){ /** * Connection URI. Update <username>, <password>, and <your-cluster-url> to reflect your cluster. * See https://docs.mongodb.com/ecosystem/drivers/node/ for more details */ const uri = "mongodb+srv://<username>:<password>@<your-cluster-url>/test?retryWrites=true&w=majority"; const client = new MongoClient(uri); try { // Connect to the MongoDB cluster await client.connect(); // Make the appropriate DB calls await listDatabases(client); } catch (e) { console.error(e); } finally { await client.close(); } } main().catch(console.error);

Список баз данных в нашем кластере

В предыдущем разделе мы ссылались на функцию listDatabases(). Давайте реализуем это! Эта функция будет получать список баз данных в нашем кластере и выводить результаты в консоль.

async function listDatabases(client){ databasesList = await client.db().admin().listDatabases(); console.log("Databases:"); databasesList.databases.forEach(db => console.log(` - ${db.name}`)); };

Сохранить файл

Вы вставили много кода. Сохраните изменения и переименуйте файл connection.js, чтобы отразить ваши изменения. Посетите репозиторий nodejs-quickstart GitHub, чтобы увидеть копию всего файла.

Заставьте свой скрипт Node.js работать

Теперь пришло время протестировать ваш код! Запустите следующую команду в своем терминале, чтобы выполнить сценарий: node connection.js — это библиотека node.js, которая позволяет вам

Ниже приведен пример вывода:

Databases: - sample_airbnb - sample_geospatial - sample_mflix - sample_supplies - sample_training - sample_weatherdata - admin - local

Сегодня вы смогли подключиться к базе данных MongoDB из сценария Node.js, получить список баз данных в своем кластере и просмотреть результаты в консоли. Хороший!

Если у вас есть какие-либо сомнения, оставьте комментарий ниже, я постараюсь ответить вам как можно скорее.

* Что такое MongoDB

MongoDB — это кроссплатформенное документо-ориентированное приложение базы данных с открытым исходным кодом. Это приложение базы данных NoSQL, которое работает с JSON-подобными документами и необязательными схемами. Он был создан MongoDB Inc. и распространяется под Public License на стороне сервера, которая считается платной в ряде дистрибутивов.

* Что такое Node.js

Node.js — это кроссплатформенная внутренняя среда выполнения JavaScript с открытым исходным кодом, которая использует движок V8 для выполнения кода JavaScript вне веб-браузера.

* Является ли Node.js языком программирования

Узел. js — это веб-фреймворк, а не язык программирования. Это скорее среда выполнения для запуска JavaScript вне браузера.

* Является ли MongoDB языком программирования?

Это простой язык для понимания, и он похож на программирование, но это не программирование.

* Внешний или внутренний интерфейс Node.js

Узел. js часто неправильно понимается разработчиками как бэкенд-фреймворк исключительно для создания серверов. Это неправда; Узел. js можно использовать как на фронтенде, так и на бэкенде.

Первоначально опубликовано на https://codipher.com 8 июня 2022 г.