Переважно всі сучасні веб-програми мають якусь систему зберігання даних у серверній системі. Наприклад, якщо взяти випадок із програмою веб-покупок, дані, такі як ціна товару, будуть зберігатися в базі даних.
Фреймворк Node js може працювати з базами даних як з реляційними (наприклад, Oracle та MS SQL Server), так і з нереляційними базами даних (наприклад, MongoDB). У цьому посібнику ми побачимо, як ми можемо використовувати бази даних у програмах Node js.
У цьому підручнику ви дізнаєтесь-
- Бази даних Node.js та NoSQL
- Використання MongoDB та Node.js
- Як створити вузол експрес-програми за допомогою MongoDB для зберігання та обслуговування вмісту
Бази даних Node.js та NoSQL
Протягом багатьох років бази даних NoSQL, такі як MongoDB та MySQL, стали досить популярними як бази даних для зберігання даних. Здатність цих баз даних зберігати будь-який тип вмісту, особливо у будь-якому форматі, є тим, що робить ці бази даних такими відомими.
Node.js має можливість працювати як з MySQL, так і з MongoDB як базами даних. Для того, щоб використовувати будь-яку з цих баз даних, потрібно завантажити та використовувати необхідні модулі за допомогою менеджера пакетів Node.
Для MySQL необхідний модуль називається "mysql", а для використання MongoDB необхідним модулем для встановлення є "Mongoose".
За допомогою цих модулів ви можете виконувати наступні операції в Node.js
- Керування пулом підключень - тут ви можете вказати кількість підключень до бази даних MySQL, які повинні підтримуватися та зберігатися Node.js.
- Створіть і закрийте підключення до бази даних. У будь-якому випадку ви можете надати функцію зворотного виклику, яку можна викликати щоразу, коли виконуються методи створення "створення" та "закриття".
- Запити можуть виконуватися для отримання даних із відповідних баз даних для отримання даних.
- За допомогою цих модулів також можна досягти маніпуляцій з даними, таких як вставлення даних, видалення та оновлення даних.
Що стосується інших тем, ми розглянемо, як ми можемо працювати з базами даних MongoDB в Node.js.
Використання MongoDB та Node.js
Як обговорювалося в попередній темі, MongoDB є однією з найпопулярніших баз даних, що використовуються разом із Node.js.
Під час цього розділу ми побачимо
Як ми можемо встановити зв’язок з базою даних MongoDB
Як ми можемо виконувати звичайні операції зчитування даних з бази даних, а також вставки, видалення та оновлення записів у базі даних MongoDB.
Для цілей цього розділу припустимо, що ми маємо наведені нижче дані MongoDB.
Назва бази даних: EmployeeDB
Назва колекції: Співробітник
Documents{{Employeeid : 1, Employee Name : Guru99},{Employeeid : 2, Employee Name : Joe},{Employeeid : 3, Employee Name : Martin},}
- Встановлення модулів NPM
Вам потрібен драйвер для доступу до Mongo із програми Node. Доступно ряд монгонських драйверів, але MongoDB є одним з найпопулярніших. Щоб встановити модуль MongoDB, виконайте наведену нижче команду
npm встановити mongodb
- Створення та закриття з'єднання з базою даних MongoDB. У наведеному нижче фрагменті коду показано, як створити та закрити підключення до бази даних MongoDB.
Пояснення коду:
- Першим кроком є включення модуля мангуста, який виконується за допомогою функції require. Після встановлення цього модуля ми можемо використовувати необхідні функції, доступні в цьому модулі, для створення підключень до бази даних.
- Далі ми вказуємо наш рядок підключення до бази даних. У рядку підключення є 3 передані значення ключа.
- Перший - це "mongodb", який вказує, що ми підключаємось до бази даних mongoDB.
- Наступним є "localhost", що означає, що ми підключаємося до бази даних на локальній машині.
- Наступним є "EmployeeDB", що є назвою бази даних, визначеної в нашій базі даних MongoDB.
- Наступним кроком є фактичне підключення до нашої бази даних. Функція підключення бере нашу URL-адресу та має можливість вказати функцію зворотного виклику. Він буде викликаний, коли з'єднання буде відкрито до бази даних. Це дає нам можливість дізнатися, чи вдалося з’єднання з базою даних чи ні.
- У функції ми записуємо на консоль рядок "Зв’язок встановлений", щоб вказати, що вдале з'єднання було створено.
- Нарешті, ми закриваємо з'єднання за допомогою оператора db.close.
Якщо вищевказаний код буде виконаний належним чином, на консоль буде записано рядок "Підключено", як показано нижче.
- Запит даних у базі даних MongoDB - Використовуючи драйвер MongoDB, ми також можемо отримувати дані з бази даних MongoDB.
У нижченаведеному розділі показано, як ми можемо використовувати драйвер для отримання всіх документів із нашої колекції Employee у нашій базі даних EmployeeDB. Це колекція в нашій базі даних MongoDB, яка містить усі документи, пов’язані з працівниками. Кожен документ має ідентифікатор об’єкта, ім’я працівника та ідентифікатор працівника для визначення значень документа.
var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {var cursor = db.collection('Employee').find();cursor.each(function(err, doc) {console.log(doc);});});
Пояснення коду:
-
На першому кроці ми створюємо курсор (курсор - це вказівник, який використовується для вказівки на різні записи, отримані з бази даних. Потім курсор використовується для ітерації між різними записами в базі даних. Тут ми визначаємо ім'я змінної, яке називається курсором, яке буде використовуватися для зберігання вказівника на записи, отримані з бази даних.), яке вказує на записи, отримані з колекції MongoDb. Ми також маємо можливість вказати колекцію "Співробітник", з якої можна отримати записи. Функція find () використовується, щоб вказати, що ми хочемо отримати всі документи з колекції MongoDB.
-
Зараз ми перебираємо наш курсор, і для кожного документа в курсорі ми будемо виконувати функцію.
-
Наша функція просто надрукувати вміст кожного документа на консолі.
Примітка: - Також можна отримати певний запис із бази даних. Це можна зробити, вказавши умову пошуку у функції find (). Наприклад, припустимо, якщо ви просто хотіли отримати запис із іменем працівника як Guru99, тоді це твердження можна записати наступним чином
var cursor=db.collection('Employee').find({EmployeeName: "guru99"})
Якщо вищевказаний код буде виконано успішно, на вашій консолі відображатиметься наступний результат.
Вихід:
З виходу,
- Ви зможете чітко побачити, що всі документи з колекції отримані. Це можливо за допомогою методу find () підключення mongoDB (db) та ітерації всіх документів за допомогою курсору.
- Вставка документів у колекцію - Документи можна вставити в колекцію методом insertOne, наданим бібліотекою MongoDB. Наведений нижче фрагмент коду показує, як ми можемо вставити документ у колекцію mongoDB.
var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {db.collection('Employee').insertOne({Employeeid: 4,EmployeeName: "NewEmployee"});});
Пояснення коду:
- Тут ми використовуємо метод insertOne з бібліотеки MongoDB, щоб вставити документ до колекції Employee.
- Ми вказуємо деталі документа про те, що потрібно вставити до колекції працівників.
Якщо ви зараз перевірите вміст вашої бази даних MongoDB, ви знайдете запис із Employeeid від 4 та EmployeeName "NewE Employee", вставлених до колекції Employee.
Примітка: Консоль не буде показувати жодних вихідних даних, оскільки запис вставляється в базу даних, і жодних вихідних даних тут не відображається.
Щоб перевірити, чи правильно було вставлено дані в базу даних, потрібно виконати наступні команди в MongoDB
- Використовуйте EmployeeDB
- db.E Employee.find ({Employeeid: 4})
Перше твердження гарантує підключення до бази даних EmployeeDb. Другий вислів шукає запис із ідентифікатором працівника 4.
- Оновлення документів у колекції - Документи можна оновлювати у колекції за допомогою методу updateOne, наданого бібліотекою MongoDB. У наведеному нижче фрагменті коду показано, як оновити документ у колекції mongoDB.
var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {db.collection('Employee').updateOne({"EmployeeName": "NewEmployee"}, {$set: {"EmployeeName": "Mohan"}});});
Пояснення коду:
- Тут ми використовуємо метод "updateOne" з бібліотеки MongoDB, який використовується для оновлення документа в колекції mongoDB.
- Ми вказуємо критерії пошуку, який документ потрібно оновити. У нашому випадку ми хочемо знайти документ, який має ім'я EmployeeName "NewE Employee".
- Потім ми хочемо встановити значення EmployeeName документа з "NewE Employee" на "Mohan".
Якщо ви зараз перевірите вміст вашої бази даних MongoDB, ви знайдете запис із Employeeid 4 та EmployeeName "Mohan", оновлений у колекції Employee.
Щоб перевірити, чи правильно оновлено дані в базі даних, потрібно виконати такі команди в MongoDB
- Використовуйте EmployeeDB
- db.E Employee.find ({Employeeid: 4})
Перше твердження гарантує підключення до бази даних EmployeeDb. Другий вислів шукає запис із ідентифікатором працівника 4.
- Видалення документів у колекції - Документи можна видалити у колекції за допомогою методу "deleteOne", наданого бібліотекою MongoDB. У наведеному нижче фрагменті коду показано, як видалити документ у колекції mongoDB.
var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {db.collection('Employee').deleteOne({"EmployeeName": "Mohan"});});
Пояснення коду:
- Тут ми використовуємо метод "deleteOne" з бібліотеки MongoDB, який використовується для видалення документа в колекції mongoDB.
- Ми вказуємо критерії пошуку, який документ потрібно видалити. У нашому випадку ми хочемо знайти документ, який має Ім'я працівника "Мохан", і видалити цей документ.
Якщо ви зараз перевірите вміст вашої бази даних MongoDB, ви побачите запис із Employeeid 4 та EmployeeName "Mohan", видалений із колекції Employee.
Щоб перевірити, чи правильно оновлено дані в базі даних, потрібно виконати такі команди в MongoDB
- Використовуйте EmployeeDB
- db.E Employee.find ()
Перше твердження гарантує підключення до бази даних EmployeeDb. Друге твердження здійснює пошук і відображення всіх записів у колекції співробітників. Тут ви можете побачити, чи був запис видалений чи ні.
Як створити вузол експрес-програми за допомогою MongoDB для зберігання та обслуговування вмісту
Створення додатка з комбінацією як за допомогою Express, так і MongoDB є досить поширеним явищем у наш час.
Під час роботи з веб-додатками на основі JavaScript, як правило, тут розуміється термін MEAN стек.
- Термін стек MEAN стосується набору технологій на основі JavaScript, що використовуються для розробки веб-додатків.
- MEAN - це скорочення від MongoDB, ExpressJS, AngularJS та Node.js.
Отже, завжди добре розуміти, як Node.js і MongoDB працюють разом, щоб доставити програми, які взаємодіють із серверними базами даних.
Давайте розглянемо простий приклад того, як ми можемо використовувати "express" та "MongoDB" разом. У нашому прикладі буде використана та сама колекція Employee у базі даних MongoDB EmployeeDB.
Тепер ми будемо включати Express для відображення даних на нашій веб-сторінці, коли це запитує користувач. Коли наш додаток працює на Node.js, можливо, доведеться перейти за URL-адресою http: // localhost: 3000 / Employeeid .
Після запуску сторінки відображатиметься весь ідентифікатор працівника у колекції Employee. Тож давайте побачимо фрагмент коду в розділах, які дозволять нам цього досягти.
Крок 1) Визначте всі бібліотеки, які потрібно використовувати в нашому додатку, а в нашому випадку це і MongoDB, і експрес-бібліотека.
Пояснення коду:
- Ми визначаємо нашу "експрес" бібліотеку, яка буде використана в нашому додатку.
- Ми визначаємо нашу «експрес» бібліотеку, яка буде використана в нашій програмі для підключення до нашої бази даних MongoDB.
- Тут ми визначаємо URL-адресу нашої бази даних для підключення.
- Нарешті, ми визначаємо рядок, який буде використовуватися для зберігання нашої колекції ідентифікатора співробітника, яку пізніше потрібно буде відобразити у браузері.
Крок 2) На цьому етапі ми збираємось отримати усі записи з нашої колекції „Співробітник” і відповідно працювати з ними.
Пояснення коду:
- Ми створюємо маршрут до нашої програми під назвою „Employeeid”. Отже, коли хтось переглядає http: // localhost: 3000 / Employeeid нашої програми, фрагмент коду, визначений для цього маршруту, буде виконаний.
- Тут ми отримуємо всі записи в нашій колекції 'Employee' через команду db.collection ('Employee'). Find (). Потім ми призначаємо цю колекцію змінній, яка називається курсором. Використовуючи цю змінну курсору, ми зможемо переглядати всі записи колекції.
- Зараз ми використовуємо функцію cursor.each () для навігації між усіма записами нашої колекції. Для кожного запису ми визначимо фрагмент коду, що робити при доступі до кожного запису.
- Нарешті, ми бачимо, що якщо повернутий запис не є нульовим, ми приймаємо працівника за допомогою команди "item.E Employeeid". Решта коду полягає лише у створенні належного HTML-коду, який дозволить правильно відображати наші результати у браузері.
Крок 3) На цьому кроці ми збираємося надіслати свої результати на веб-сторінку та змусити нашу програму прослуховувати на певному порту.
Пояснення коду:
- Тут ми надсилаємо весь вміст, створений на попередньому етапі, на нашу веб-сторінку. Параметр 'res' дозволяє нам надсилати вміст на нашу веб-сторінку як відповідь.
- Ми робимо всю програму Node.js прослуховуванням на порту 3000.
Вихід:
З виходу,
- Це чітко показує, що всі дані працівника в колекції Employee були вилучені. Це пов’язано з тим, що ми використовуємо драйвер MongoDB для підключення до бази даних та отримання всіх записів працівника, а згодом використовували «express» для відображення записів.
Ось код для довідки
var express = require('express');var app = express();var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';var str = "";app.route('/Employeeid').get(function(req, res){MongoClient.connect(url, function(err, db) {var cursor = db.collection('Employee').find();//noinspection JSDeprecatedSymbolscursor.each(function(err, item) {if (item != null) {str = str + " Employee id " + item.Employeeid + "";}});res.send(str);db.close();});});var server = app.listen(3000, function() {});
Примітка: cursor.each може бути застарілим на основі версії вашого драйвера MongoDB. Ви можете додати // noinspection JSDeprecatedSymbols перед курсором.each, щоб обійти проблему. Крім того, ви можете використовувати forEach. Нижче наведено зразок коду, що використовує forEach
var express = require('express');var app = express();var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';var str = "";app.route('/Employeeid').get(function(req, res) {MongoClient.connect(url, function(err, db) {var collection = db.collection('Employee');var cursor = collection.find({});str = "";cursor.forEach(function(item) {if (item != null) {str = str + " Employee id " + item.Employeeid + "";}}, function(err) {res.send(err);db.close();});});});var server = app.listen(8080, function() {});
Резюме
- Node.js використовується спільно з базами даних NoSQL для створення багатьох сучасних веб-додатків. Деякі із загальновживаних баз даних - MySQL та MongoDB.
- Одним із поширених модулів, що використовується для роботи з базами даних MongoDB, є модуль під назвою 'MongoDB'. Цей модуль встановлюється через менеджер пакетів Node.
- За допомогою модуля MongoDB можна запитувати записи в колекції та виконувати звичайні операції оновлення, видалення та вставки.
- Нарешті, однією з сучасних практик є використання експрес-фреймворку разом із MongoDB для доставки сучасних програм. Фреймворк Express може використовувати дані, повернені драйвером MongoDB, і відповідно відображати дані користувачеві на веб-сторінці.