Базы данных NoSQL упрощают начало разработки вашего проекта или приложения с помощью базовых схем, а поскольку согласованность может быть нарушена с помощью этого типа базы данных, расширение становится легким по мере увеличения наших переменных и взаимодействий, и именно поэтому мы используем MongoDB в качестве нашего шлюза. Это также связано с тем, что приложение API (см. ссылку ниже о проекте, который мы создаем) будет содержать все окончательные данные о транзакциях или взаимодействиях (Postgres).

На всякий случай, если вы не понимаете, что мы разрабатываем, перейдите по ссылке ниже:



В предыдущем посте (Часть 1) мы смогли добавить в наш шлюз модули mongodb и mongoose npm. В этом посте мы сосредоточимся на создании схем коллекций, сохранении, извлечении, обновлении и удалении данных из наших коллекций баз данных.

Если вам интересно, что такое коллекции, вы можете связать их с таблицами или отношениями в базах данных SQL. Поскольку базы данных NoSQL не являются табличными базами данных, которые состоят из JSON-подобных типов документов баз данных, среди которых MongoDB является частью. Следовательно, записи (в базах данных SQL) или записи — это документы в NoSQL, а коллекция — это группа документов (записей). Я надеюсь, что это не сбивает с толку. Вы можете ознакомиться с более широкими пояснениями здесь Объяснение NoSQL, TechTarget и Базы данных NoSQL.

Мы рассмотрим вставку данных для базовой демонстрационной транзакции внутренней передачи (приложения), имеющей transaction_id transaction_type sender_account_id recipient_account_id amount currency transaction_note, затем date_time .

Во-первых, мы начнем с создания схемы, которая простыми словами представляет собой формат данных, которые должны быть сохранены в базе данных. Давайте продолжим и создадим файл модели transactionModel.ts для наших данных транзакции и добавим следующий код.

Из кода видно, что требуются все входные данные, кроме примечания к транзакции, которое является необязательным. После определения схемы transactionSchema мы создаем transactionModel, как в строке 13, которая будет использоваться для поиска, сохранения и извлечения данных, связанных с транзакциями. Помните, что это основа, и мы добавим больше значений или переменных по мере продвижения.

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

  • POST /api/transaction Создать транзакцию
  • GET /api/transaction/:id Получить данные о транзакции для одной транзакции
  • GET /api/transactions Получить все транзакции

Эта часть больше о базе данных, поэтому мы не будем углубляться в маршруты. На данный момент у нас может быть базовая маршрутизация для проверки нашей схемы. Для этого мы собираемся добавить модуль body-parser, который поможет нам создать промежуточное ПО для преобразования данных наших запросов в формат JSON для хранения. Используйте приведенную ниже команду.

npm install body-parser --save

Теперь мы можем добавить приведенный ниже код в наш файл app.ts.

const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

Итак, у нас есть app.ts, выглядящий так

Затем мы создаем файл маршрута transactions transactions.ts в папке маршрутов. Наконец, мы добавляем к нему код ниже:

Вы можете запустить npm run start для сборки и запуска нашего сервера.

Из приведенного выше кода сохраните транзакцию, созданную путем вызова функции mongoose start() для полученных данных тела запроса, и это отправляет ответ клиенту, когда процесс сохранения успешен или нет. Смотрите скриншот ниже от почтальона.

Чтобы получить одну транзакцию, мы передаем параметр id в маршрут, который используется для поиска транзакции, аналогичной transactionId, которая была сгенерирована при создании транзакции. Смотрите скриншот ниже от почтальона.

Затем мы также можем запросить возврат всех транзакций, не передав аргумент в функцию find() мангуста. Смотрите скриншот ниже от почтальона.

Неудачное действие будет выглядеть в почтальоне, как показано ниже.

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

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

Далее мы рассмотрим маршруты, промежуточное ПО и, надеюсь, контроллеры. Я стараюсь делать их как можно короче, чтобы не получить полный текст за один раз 🤩.

Если вы хотите увидеть готовый код (до этого этапа), вы можете получить его из репозитория по ссылке ниже.



До следующего поста 😎.