Современное надежное приложение имеет средство хранения данных на своем сервере, такое как приложение Node, которое может работать как с нереляционными (например, PostgresQL, MongoDB), так и с реляционными (например, MySQL, Oracle).
MongoDB — это нереляционная база данных, относительно простая в использовании и мощная, и если вы разработчик Node.js и хотите узнать о преимуществах, которые она дает, и о том, как приступить к созданию безопасной интеграции с вашим приложением Node, это это руководство для вас!
В этой статье мы узнаем, как интегрировать/подключиться к MongoDB; очень популярную нереляционную базу данных с Node.js и посмотрим, как мы можем использовать ее в приложениях Node.
Примечание: Чтобы продолжить, вам нужно будет установить Node.js. Вы можете загрузить самую длинную стабильную версию (LTS) и установить ее на свой локальный компьютер с ее Официальная страница загрузки.
Краткая информация о MongoDB
MongoDB — это самая популярная и самая совершенная база данных на основе документов, в которой все данные хранятся в двоичном формате JSON (нотация объектов JavaScript), известном как BSON. БСОН - это документ, без необходимости использования предопределенной схемы данных. Это позволяет хранить данные, к которым приложение часто обращается вместе, в одном месте, а также упрощает и ускоряет чтение базы данных.
В отличие от реляционных таблиц коллекции являются автономными, что значительно упрощает работу с ними. Когда новый документ создается в коллекции MongoDB, ему присваивается идентификатор, чтобы сделать его уникальным для этой коллекции, а внутри документа можно определить несколько полей; где значение может быть вариантом типов данных: массивами, строками, целыми числами, объектами и т. д.
Для управления данными API запросов полезен для выполнения основных операций создания, чтения, обновления и удаления (CRUD) в базе данных. Вторичные индексы также могут быть созданы для обеспечения оптимизации и чрезвычайно быстрого выполнения общих запросов. Также поддерживаются геопространственные запросы, которые позволяют находить документы в определенном географическом месте.
Начало работы с MongoDB
Прежде чем мы начнем подключаться к MongoDB из приложения Node, зайдите на официальный сайт MongoDB и зарегистрируйтесь. Try Free
кнопка (если у вас еще нет учетной записи):
После создания учетной записи нажмите кнопку Build a Database
кнопку и нажмите, чтобы создать базу данных:
Затем создайте общий кластер (он бесплатен навсегда!) и дайте ему имя по вашему выбору.
Общий кластер идеально подходит для экспериментов в ограниченной песочнице. Вы можете перейти на производственный кластер в любое время.
После успешного создания кластера нажмите кнопку Connect
кнопка для подключения к Кластеру:
Теперь вам показаны четыре различных способа подключения к MongoDB, но поскольку мы хотим подключиться к приложению Node, давайте выберем Connect your application
опции:
Затем вам будет предложено выбрать метод подключения. Здесь обязательно выберите Node.js в качестве драйвера и выберите соответствующую версию (при написании этой статьи я использую 4.1 или более позднюю версию).
Нам также показана строка подключения, которая полезна для подключения нашего кластера MongoDB к приложению Node:
Теперь нам нужно создать приложение Node.js для подключения к базе данных MongoDB.
Создание приложения Node
В предпочитаемом вами каталоге для этого проекта создайте новую папку:
$ mkdir integrating-mongodb-node
Затем запустите npm init
в терминале, чтобы инициализировать приложение Node с помощью package.json
файл, который позволяет нам отслеживать зависимости приложения:
$ npm init
package name: (codes) integrating-mongodb-node
version: (1.0.0)
description: learning how to connect mongodb to a node app
entry point: (server.js)
test command:
git repository:
keywords:
author:
Is this OK? (yes) yes
Ознакомьтесь с нашим практическим руководством по изучению Git с рекомендациями, принятыми в отрасли стандартами и прилагаемой памяткой. Перестаньте гуглить команды Git и на самом деле изучить это!
Теперь, когда мы успешно инициализировали package.json
, давайте установим два пакета, которые помогут при создании нашего сервера. Первый — Express.js, веб-фреймворк для быстрой и простой разработки приложений Node:
$ yarn add express -D
Второй пакет, который мы установим, — это пакет Mongoose, который поможет нам построить соответствующую схему для нашей базы данных в приложении Node:
$ yarn add mongoose -D
Теперь, когда необходимые зависимости для разработки успешно установлены, мы можем написать код для подключения нашей базы данных MongoDB к нашему приложению Node.
В каталоге, который мы только что создали для проекта, создайте server.js
файл
$ touch server.js
Далее мы определяем базовую настройку приложения Node в server.js
, создав простой экспресс-сервер.
const express = require("express");
const mongoose = require("mongoose");
const app = express();
const port = 8000;
app.listen(port, () => {
console.log(`Server started at port ${port}`);
});
Мы можем убедиться, что наш сервер работает должным образом, выполнив следующий код в терминале.
$ node server.js
Что должно привести к:
Server started at port 8000
Теперь вы можете вернуться на панель управления MongoDB, чтобы скопировать URI (унифицированный идентификатор ресурса), чтобы подключить приложение Node к базе данных.
I server.js
создайте переменную для хранения универсального идентификатора ресурса и замените URI с паролем вашей учетной записи MongoDB.
const express = require("express");
const mongoose = require("mongoose");
const app = express();
const uri =
"mongodb+srv://UcheAzubuko:@stackabusecluster.fgavg5s.mongodb.net/?retryWrites=true&w=majority";
const port = 8000;
app.listen(port, () => {
console.log(`Server started at port ${port}`);
});
Затем мы создаем асинхронную функцию, которая позволит нам подключиться к MongoDB, поскольку мы не знаем, сколько времени может потребоваться для завершения функции, прежде чем мы подключимся к базе данных:
const express = require("express");
const mongoose = require("mongoose");
const app = express();
const uri =
"mongodb+srv://UcheAzubuko:@stackabusecluster.fgavg5s.mongodb.net/?retryWrites=true&w=majority";
async function connect() {
try {
await mongoose.connect(uri);
console.log("Connected to MongoDB");
} catch (error) {
console.log(error);
}
}
connect();
const port = 8000;
app.listen(port, () => {
console.log(`Server started at port ${port}`);
});
Мы создали асинхронную функцию, которая регистрирует Connected to MongoDB
сообщение, когда соединение было успешно установлено между MongoDB и приложением Node, и регистрировать любые ошибки в случае возникновения ошибки.
Теперь нам следует перезапустить сервер:
$ node server.js
И получим сообщение об успешном завершении, информирующее нас о том, что между базой данных MongoDB и приложением Node установлено безопасное соединение:
Server started at port 8000
Connected to MongoDB
На этом этапе, когда вы вернетесь на панель мониторинга кластера проектов, вы увидите информацию, показывающую, что недавно было подключение к базе данных:
Хорошо, ребята, вот и все! Мы успешно интегрировали базу данных MongoDB в приложение Node.js.
Заключение
В этой статье мы узнали, как создать безопасное соединение между приложением Node.js и базой данных MongoDB. Теперь вы можете легко сделать то же самое, когда вам нужно создать приложение с использованием MongoDB; очень популярная нереляционная база данных в экосистеме.
Не забывайте, что Документация MongoDB ваш лучший друг в изучении MongoDB, а чтобы узнать больше о создании приложений Express, обратитесь к Экспресс-документация тоже.
Если вы застряли во время выполнения руководства, не стесняйтесь обдумать Репозиторий проекта на GitHub чтобы найти свой путь.