NoSQL базите данни улесняват започването на разработването на вашия проект или приложение с основни схеми и тъй като последователността може да бъде надскочена с този тип база данни, разширяването става лесно, тъй като нашите променливи и взаимодействия се увеличават и затова използваме MongoDB за нашия портал. Това също така е така, защото API приложението (вижте връзката по-долу за проекта, който изграждаме) ще бъде това, което ще съхранява всички крайни транзакционни данни или данни за взаимодействие (Postgres).

Само в случай, че сте объркани какво разработваме, моля, посетете връзката по-долу:



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

Ако се чудите какво представляват колекциите, можете да ги свържете с таблици или релации в SQL бази данни. Тъй като базите данни на NoSQL са нетаблични бази данни, които се състоят от документи, подобни на JSON, типове бази данни, сред които MongoDB е част. Следователно записите (в SQL бази данни) или записите са документи в NoSQL, а колекцията е група от документи (записи). Надявам се, че това не е объркващо. Вижте по-широките обяснения тук NoSQL Explained, TechTarget и NoSQL Databases.

Ще разгледаме вмъкването на данни за основна демо транзакция за вътрешен (приложение) трансфер, имаща 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() на mongoose. Вижте екранната снимка по-долу от пощальона.

Неуспешно действие ще изглежда както по-долу в пощальон.

Браво, че изминахме целия този път, видяхме как ще взаимодействаме с нашата база данни, а в други части ще разглеждаме модификации и изтриване на нашите данни от базата данни.

Бих искал да ви благодаря отново, че завършихте тази публикация, можете да ръкопляскате или дори да ме следвате за още публикации като тази, докато преминавам през пътуването си за създаване на портал за плащане. Моля, бъдете свободни да ме поправите къде съм сбъркал. Ученето е пътят.

След това ще разгледаме маршрути, междинен софтуер и, надяваме се, контролери. Опитвам се да ги направя възможно най-кратки, за да избегна пълния учебник наведнъж 🤩.

В случай, че искате да видите готовия код (до този етап), можете да го получите от репото, като използвате връзката по-долу.



До следващия пост 😎.