Як налаштувати базу даних, якщо ви розробник

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

Налаштування бази даних

Перше, що нам знадобиться, це фактична база даних. Ви можете вирушити до mlab за безкоштовним. Після реєстрації натисніть кнопку створити новуна вкладці Розгортання MongoDB. База даних пісочниці безкоштовна, тому саме цю ми будемо використовувати.

Після створення бази даних нам потрібно створити обліковий запис, щоб ми могли пройти автентифікацію. Клацніть на назву бази даних, а потім користувачів,і додати користувача бази даних . Запишіть вибране ім’я користувача та пароль, оскільки вони нам знадобляться пізніше.

Зверху сторінки бази даних ви повинні побачити URI MongoDB. Це веб-адреса нашої бази даних. URI вашої бази даних схожий на URL-адресу веб-сторінки. За домовленістю, URI MongoDB є таким:

mongodb://:@:/

Наприклад, моє:

mongodb://admin:[email protected]:11885/medium

Налаштування сервера

Ми збираємось використовувати Node у нашому задньому кінці. Щоб уникнути необхідності його налаштування, ви можете клонувати мій проект на Glitch, натиснувши тут

Погляньте на початковий server.jsфайл, який я надав:

Ми починаємо з імпорту express- це бібліотека, яку ми використовуватимемо для обробки запитів на наш сервер.

Нам потрібно use(require(cors))дозволити міждоменні запити. Це запити веб-сайту, розміщеного в домені, на сервер іншого домену.

app.use(require('body-parser').json()) автоматично аналізує для нас запит до JSON.

Потім ми передаємо getметоду маршрут, який ми хочемо обробити, і зворотний виклик, який його обробляє. Це означає, що кожного разу, коли хтось відкриває сторінку /нашого веб-сайту, запит буде оброблятися цим зворотним дзвінком. Базовий домен неявний, тому якщо ваш домен //shiny-koala.glitch.com,маршрут /aboutбуде //shiny-koala.glitch.com/about .

Якщо бути точним, коли я кажу “відкрити сторінку”, я маю на увазі, що він робить запит за допомогою GETметоду на наш сервер. Методи Http - це лише типи запитів, які ви можете зробити на сервер. Ми використовуватимемо лише наступне:

  • GETЦей метод використовується для отримання ресурсів із сервера. Наприклад, коли ви відкриваєте Facebook, він завантажує потрібні HTML, CSS та JavaScript.
  • POSTЦей метод використовується для створення ресурсів на сервері. Наприклад, коли ви публікуєте щось у Facebook, інформація, яку ви написали в цій публікації, надсилається на сервери Facebook у POSTзапиті.
  • PUTЦей метод використовується для оновлення ресурсів на сервері. Наприклад, коли ви редагуєте публікацію, ваші зміни надсилаються на сервер Facebook у PUTзапиті.

Працює app.postі app.putпрацює точно так app.get, але обробляйте метод POST і PUT замість GET досить розумно.

Маршрутизація

Поки ви розробляєте сервер, вам потрібно буде виконати деякі тести. Для запуску HTTP-запитів ви можете скористатися тестовим тестом REST на сайті або додатком Insomnia.

Щоб перевірити URL-адресу програми Glitch, натисніть кнопку Показати .

Поки що ми користуємось лише маршрутом /. Але ми хочемо зберігати різну інформацію про різних користувачів, тому нам потрібен різний маршрут для кожного користувача.

Наприклад: /ZaninAndreaі/JohnGreen

Зараз у нас проблема: ми не можемо кодувати кожен окремий маршрут, оскільки це не дуже масштабований підхід. Нам потрібні параметри маршруту. Ми будемо кодувати лише один маршрут:/:user

Двокрапка говорить Express, щоб він ловив будь-який маршрут, починаючи з, /а потім лише буквено-цифрові символи.

Кілька прикладів:

  • /ZaninAndrea буде спійманий
  • /Johnny45 буде спійманий
  • /alex/scoreбуде НЕ спійманий

Потім ми можемо отримати значення userзмінноїrequest.params.user

Тепер наш сервер відповідає на кожен запит, що повторює ім’я користувача.

Додавання даних до бази даних

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

Для запиту бази даних ми будемо використовувати mongodbбібліотеку. Ви можете встановити його одним із двох способів:

npm install mongodb --save

або якщо ви використовуєте Glitch, перейдіть до package.jsonфайлу та натисніть кнопку Додати пакет .

Давайте завантажимо бібліотеку та збережемо URI MongoDB у змінній:

URI - це дуже конфіденційна інформація - це все, що потрібно для доступу до вашої бази даних. Найкраще помістити його у .envфайл, який не буде видимим для інших.

Glitch автоматично завантажує змінні з .envфайлу у process.envзмінну.

Підключення до бази даних є асинхронною операцією, тому нам потрібно обернути всі налаштування сервера в зворотний виклик, як це:

Бази даних організовані в колекції, а колекції містять документи (в основному файли JSON). Тож давайте підключимось до userколекції (вона буде створена при першому зверненні до неї).

По-перше, ми будемо обробляти POSTмаршрут. Саме його ми використовуватимемо, коли вперше додаємо дані про користувача. Тоді ми використаємо PUTмаршрут для його оновлення.

collection.insertOneМетод додає новий документ в колекцію. У нашому випадку кожен користувач матиме власний документ.

{ ...request.body, user : request.params.user } використовує оператор поширення для злиття даних, що надаються через тіло запиту та користувача, що надається через URL.

Результат - документ, який буде зберігатися в колекції.

Другий аргумент - це зворотний виклик, який просто повідомляє користувача про результат операції.

Отримання даних з бази даних

Тепер, коли у нас є деякі дані на сервері, ми хочемо мати можливість їх прочитати. Для цього ми використовуємо GETметод.

Цього разу першим аргументом є фільтр, який повідомляє базі даних лише надіслати нам документи з правильною властивістю користувача.

Документи повертаються користувачеві в масиві, оскільки теоретично може бути більше одного документа з цією властивістю користувача. Це залежить від нас, щоб цього не сталося.

Оновлення даних у базі даних

Нарешті, але не менш PUTважливим є метод, який ми використовуємо для оновлення вже існуючого користувача.

Перший аргумент - це фільтр, подібний до того, який ми використовували в GETметоді.

Другий аргумент - це документ оновлення - докладніше про них ви можете прочитати тут. У нашому випадку ми просимо базу даних об’єднати передані користувачем дані з уже існуючими даними.

Будьте обережні, оскільки вкладені параметри будуть замінені, а не об’єднані.

Прощання

Це далеко не повний посібник з баз даних та внутрішнього програмування, але цього достатньо для того, щоб розпочати роботу та створити особисті проекти.

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

Тут ви можете попрацювати з повним проектом, вам знадобиться ваша власна база даних, якщо ви її ще не створили, поверніться до розділу Налаштування бази даних .

Якщо вам сподобалась ця стаття, будь ласка, дайте їй кілька хлопань, щоб більше людей побачили її. Дякую!