Express.js работа с MongoDB

Node.js и Express.js работа с MongoDB и Mongoose
Метки: / / /

В этой статье мы разберём как в Node.js Express.js реализовать работу с MongoDB, то есть работу с NoSQL базой данных, будет интересно и полезно.

Также если вас интересует тема Express.js, то посмотрите наш учебник на эту тему, тоже очень интересный, особенно если вы новичок.

Как будем работать с MongoDB:

Для начала расскажу как мы вообще будем работать с базой данных MySQL, для этого мы скачаем специальную библиотеку, которая называется Mongoose в ней и будем работать с БД в express.js.

Она нужна для упрощения работу, в Express.js уже есть стандартные инструменты, но с Mongoose будет горазда проще.

Как установить и подключить Mongoose.js:

Для установки нужно использовать NPM, введите эту команду:

После чего заходите в «index.js» и подключаем там эту библиотеку, для этого вот что мы пишем:

В начале мы как обычно подключаем Express.js и Mongoose.js, после чего для удобства создаём асинхронную переменную async, в ней подключаемся к БД и запускаем сам сервер.

Важно:

Работа с Mongoose.js должна происходить в асинхронном режиме или внутри функция async, с использованием await.

Теперь мы создали подключились к БД и создали сервер, можем работать дальше.

Работа с MongoDB и Mongoose.js в Express.js:

Когда всё подключили, создайте папку «models», в ней будем хранить схемы для данных MongoDB.

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

Для примера я создам файл «user.js», в которой буду хранить схему для пользователей, вот как мы её напишем:

Как видите в начале из Mongoose.js мы получаем два компонента, первый Schema, благодаря ему мы создадим схему, и model, это модель, о ней чуть ниже.

Потом создаём объект схемы, для этого сохраняем объект класса Schema, во время создание передаём объект, с параметрами нашей схемы, как вы можете заметить каждый параметр состоит из свойства type, тип, в качестве него передаём класс типа который вам нужен, required, говорит что нужно проверять, также в качестве этого параметра можете передать функцию, которая будет фильтровать данные, ещё иногда встречается default, оно хранит данные по умолчанию, если во время создания нового объекта вы не передали данные для параметра. Эти все свойства вы будите использовать наверное чаше всего.

Последние мы создаём модель и экспортируем её, делаем мы это благодаря функции model, которая принимает в себя два параметра, первый название модели, и объект схемы.

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

Дальше заходим в ваш контроллер или где вы обрабатываете данные и портируем туда модель, вот как это делается:

Теперь вы можете работать в Node.js и Express.js с данными из MongoDB.

Базовые методы для работы с данными:

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

Вот список основных методов, с которыми вам придётся работать:

  • Model.create(obj) — Создаёт новый объект в базе данных;
  • Model.find(obj) — Возвращает всё объекты которые соответствуют obj;
  • Model.findById(id) — Возвращает объект по его идентификатору;
  • Model.findOne(obj, str) — Возвращает один объект которые соответствуют obj;
  • Model.deleteOne(obj) — Удаляет один объект который соответствуют obj;
  • Model.Many(obj) — Удаляет несколько объектов который соответствуют obj;
  • Model.updateOne(obj1, obj2) — Обновляем объект на свойства obj2, который соответствуют obj1;

Это вот большинство с которыми вы будите работать, но стоит сказать, что obj не обязательно должен иметь все точные параметры объекта который вы хотите найти, удалить или изменить, вам достаточно будет указать только одно свойство или несколько, и если он найдёт совпадения, то сделает и вернёт что вам надо.

Теперь давайте рассмотрим не большой пример работы, как создавать, находить и обновлять данные:

Здесь мы создали нового пользователя, и как вы можете заметить, мы в объекте передали только те параметры, которые у нас не назначены по с свойством default, так как те свойства имеют значение по умолчанию, то не чего не будет, но если мы не зададим username, то будет ошибка.

Теперь найдём объект, для этого будем использовать метод findOne():

В user будет храниться первый попавшийся пользователь с именем «Vova», можно добавить ещё свойства по которым искать пользователя или пользователей, например возраст или другие параметры, в таком случае найдётся более конкретный пользователь или объект.

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

Последний пример, это как обновлять данные, вот пример:

Здесь обновляем данные пользователя с Email «vova@vova.com», то есть мы находим пользователя с этой электронной почтой и если нашли, то меняем его имя, и точно также вы для точности можете не только по Email искать, но и по другим параметрам, и точно так же, можете менять не только имя, но и другие свойства.

Ещё все эти методы имеют и в качестве последнего параметра функцию, которая будет обрабатывать ошибки, тоже бывает полезно.

Вывод:

В этой статье вы прочитали как в Node.js и Express.js работать с MongoDB, с использованием библиотеки Mongoose, думаю вам было интересно, если вас заинтересовала библиотека, то посмотрите её документацию.

Подписываетесь на соц-сети:

Оценка:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
(Пока оценок нет)
Загрузка...

Также рекомендую:

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии