Пример использования MongoDB Node js Rest API

Пример MongoDB Node js Rest API Учебное пособие — это тема, которую мы обсудим сегодня. REST API обрабатывают серверную часть веб-приложения. Это означает, что бэкэнд создается один раз и может предоставлять контент или данные для интерфейсных приложений, таких как Angular, React или Vue , мобильных платформ, таких как Android, iOS , React Native или другие серверные приложения. REST означает Передача репрезентативного состояния , и это способ, которым веб-сервер должен отвечать на запросы. Он позволяет читать, создавать, обновлять и удалять данные из базы данных. MongoDB Node js Rest API Example Tutorial немного длинноват, так что оставайтесь со мной.

Если вы хотите узнать больше о Node.js, посмотрите этот курс NodeJS — Полное руководство (включая MVC, REST API, GraphQL)

Технология Стек

  1. Node.js как платформу
  2. Express в качестве веб-фреймворка node.js
  3. MongoDB в качестве базы данных NoSQL

Шаг 1. Установка Node.js на Mac

Перейдите в терминал и введите следующую команду.

 node -v 

Если вы ранее установили Node.js, он предоставит вам версию, установленную на вашем Mac, если вы не можете найти, вам необходимо установить его. Итак, предположим, что вы не установили, поэтому установите с помощью следующей команды. Конечно, вы можете перейти на nodejs.org и загрузить пакет для Mac, но вы также можете загрузить его с помощью homebrew . Для этого вы установили homebrew на свой компьютер, и это очень просто.

Установить узел .js и npm с Homebrew

Сначала установите Homebrew.

/usr/bin/ruby ​​-e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Затем запустите brew update , чтобы убедиться, что Homebrew обновлен.

Затем добавьте местоположение Homebrew в свой $ PATH В вашем файле .bash_profile или .zshrc .

 export PATH = "/usr/local/bin: $ PATH" 

Затем установите Node.js. Он также установит npm с этим.

 brew install node 

Теперь проверьте, введя следующую команду.

 node -vnpm  -v 

Установить MongoDB с помощью homebrew .

Введите в терминале следующую команду.

 brew  install mongodb 

После загрузки Mongo создайте каталог « db ». Здесь будут жить файлы данных Mongo. Вы можете создать каталог в расположении по умолчанию, запустив mkdir -p/data/db

. Убедитесь, что каталог/data/db имеет необходимые разрешения, выполнив следующую команду.

 sudo chown -R `id -un`/data/db 

Запустить демон Mongo , в одном из окон вашего терминала запустите mongod . Это должно запустить сервер Mongo с номером порта

 mongod 

Запустить оболочку Mongo с демоном Mongo, работающим в одном терминале, введите mongo в другом окне терминала. Это запустит оболочку Mongo, которая представляет собой приложение для доступа к данным в MongoDB .

 mongo 

Я набрал одну команду, чтобы показать базу данных по умолчанию в MongoDB , и там по умолчанию — три базы данных.

Шаг 2. Создание нового приложения Node.js.

Хорошо, теперь Node.js и MongoDB правильно установлены на нашем компьютере. Теперь пора создать папку проекта. Мы будем использовать менеджер пакетов Yarn для установки зависимостей. Он разработан Facebook. Во-первых, если вы ранее не устанавливали Yarn, установите его с помощью следующей команды.

 brew install yarn 

Проверьте, что Yarn устанавливается, запустив:

 yarn -v 

Он предоставит вам версию и проверив, что мы успешно установили yarn на нашем компьютере.

Пример MongoDB Node js Rest API

Создайте папку проекта и войдите в нее.

 mkdir mongorestcd mongorest 

Теперь откройте эту папку в вашем любимом редакторе кода. В моем случае это Visual Studio Code . На мой взгляд, это лучший редактор кода для разработки Javascript. Теперь установите следующие пакеты, используя yarn.

 yarn add express 

Express — это веб-фреймворк, построенный на основе Node. js. Он очень легкий и имеет все функции, которые есть в любом современном фреймворке. Мы создадим простой API , который может добавлять название курса и цену в базу данных. Пользователь курса может добавлять, редактировать, обновлять и удалять свои курсы.

Теперь установите другие зависимости, такие как mongoose, nodemon и body-parser.

 yarn add  mongoose body-parser 

Установить nodemon как глобальную зависимость. Нам это нужно, потому что каждый раз, когда мы меняем файл, он автоматически перезагружает сервер. Поэтому мы не делаем это вручную.

 sudo yarn global add nodemon 

Создайте файл server.js в корне проект. Определите и запустите сервер.

//server.jsconst express = require ('express'); const app = express (); const PORT = 4000; app.listen (PORT, function ()  { приставка. log ('Ваш сервер node js работает в ПОРТ:', ПОРТ);}); 

Перейдите в файл package.json и добавьте объект скрипта .

 {"scripts": {"start": "nodemon server.js"}, "dependencies": {"body-parser": "^ 1.18.2", "express":  "^ 4.16.3", "mongoose": "^ 5.0.12", "nodemon": "^ 1.17.3"}} 

Теперь перейдите в терминал и введите следующую команду для запуска сервера.

 npm start 

Шаг 3. Подключите приложение Node js к MongoDB.

Создайте в корневом каталоге файл с именем db.js. Экспорт объекта db из файла db.js .

//db.jsmodule.exports = {DB: 'mongodb://localhost: 27017 /mongorestapi '} 

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

Импортируйте файл db.js внутри server.js файл. Помните, что вы уже запустили сервер MongoDB на порту 27017 . Если вы закрыли ранее, начните с ввода команды mongod .

//server.jsconst express = require ('express'); const bodyParser = require ('  body-parser '); const mongoose = require (' mongoose '); const app = express (); const config = require (' ./db '); const PORT = 4000; app.use (bodyParser.json ()))  ; mongoose.connect (config.DB) .then (() => {console.log ('База данных подключена')}, err => {console.log ('Не удается подключиться к базе данных' + err)})  ; app.listen (PORT, function () {console.log ('Ваш сервер node js работает на PORT:', PORT);}); 

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

Шаг 4: Создайте модель для нашего приложения.

Теперь нам нужно создать две папки в корне с именами routes и

В папке моделей создайте одну модель называется Course.js. Мы определяем схему для коллекции курсов. Для этого мы используем библиотеку Mongoose, поскольку это лучший ORM для управления базой данных MongoDB .

//Course.jsconst mongoose = require ('mongoose');  const Схема = мангуст. Схема;//Определение коллекции и схемы для Coursevar Course = new Schema ({course_name: {type: String}, course_price: {type: Number}}, {collection: 'курсы'}); module.exports = mongoose.model (  'Course', Course); 

Теперь импортируйте файл Course.js внутри server.js .

//server.jsconst Course = require ('./models/Course'); 

Шаг 5. Создайте маршруты для нашего приложения.

В папке маршрутов создайте один файл с именем CourseRoute.js file.

Теперь в этом файле нам нужно импортируйте модель Course.js , а также выразите, чтобы получить модуль Router .

Мы сохраним значения в базе данных через Mongoose model , поэтому она обязательна.

//CourseRoute.jsconst express = require ('express'); const  app = express (); const router = express.Router (); const Course = require ('../models/Course'); router.route ('/add'). post (func  ция (req, res) {const course = новый курс (req.body);  course.save () .then (course => {res.status (200) .json ({'course': 'курс успешно добавлен'});}) .catch (err => {res.status (400).  send ("не удалось сохранить курс в базу данных");});  }); module.exports = router; 

Мы использовали модуль Router из express и потребовали, чтобы модель сохраняла данные в базе данных MongoDB . Создан один маршрут, который говорит, что любой шаблон URL-адреса /course/add в почтовом запросе выполняет эту функцию. Он создаст экземпляр модели и сохранит эти данные в базе данных с помощью объектно-реляционного сопоставления. Теперь нам нужно сообщить express, что попадет в любой запрос, имеющий ресурс /course , чтобы функция этого файла файла CourseRoute.js выполнялась .

Итак, наш файл server.js выглядит так.

//server.jsconst express = require (  'экспресс'); const bodyParser = require ('body-parser'); const mongoose = require ('mongoose'); const app = express (); const config = require ('./db'); const Course = require  ('./models/Course');const CourseRoute = require (' ./routes/CourseRoute '); const PORT = 4000; mongoose.connect (config.DB) .then (() => {console.log ('  База данных подключена ')}, err => {console.log (' Не удается подключиться к базе данных '+ err)}); app.use (bodyParser.json ()); app.use ('/course ', CourseRoute  ); app.listen (PORT, function () {console.log ('Ваш сервер node js работает на PORT:', PORT);}); 

Здесь я использовал промежуточное ПО для перенаправить любой запрос с шаблоном типа ‘/course’ на CourseRoute.js . Поэтому, если запрос похож на «/course/add», а тип — POST , мы можем сохранить данные в базе данных..

//server.jsapp.use ('/course', CourseRoute); 

Теперь мы можем проверить это в Postman. Так что откройте Почтальон. Это удобный инструмент, который можно использовать для тестирования API. Помните, что вам нужно отправить данные в виде необработанного json-формата.

В ответе мы видим, что мы успешно вставили значения в базу данных. Теперь проверьте базу данных MongoDB . Откройте свой mongoshell , если вы еще не открыли, введите в терминале mongo . Теперь введите одну за другой команду в свой терминал. Сначала введите следующее.

 show dbs 

Он покажет все базы данных. В списке вы можете увидеть, что наша база данных mongorestapi создана. Теперь введите следующую команду.

 use mongorestapi 

Итак, он переключится на базу данных mongorestapi .

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

 показать коллекции 

Он сообщит нам, что у нас есть коллекция курсов. Итак, переключитесь на коллекцию курсов.

 используйте курсы 

Теперь загрузите все документы из коллекции курсов.

 db.courses.find  () .pretty () 

Он предоставит все коллекции, которые уже были сохранены в базе данных. Он выводит все результаты в более красивом формате.

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

Хорошо, чтение и создание завершены. Остается обновление и удаление. Итак, давайте сделаем это.

//CourseRoute.jsconst express = require ('express'); const app = express (); const router = express.Router (); const Course = require  ('../models/Course');router.route('/add').post(function (req, res) {const course = new Course (req.body); course.save () .then (course  => {console.log (курс); res.status (200) .json ({'course': 'Курс успешно добавлен'});}) .catch (err => {res.status (400) .send (  "не удалось сохранить курс в базу данных");});}); //Определено получение данных (индекс или листинг) route router.route ('/'). Get (function (req, res) {Course.find (function (err, курсы) {if (err) {console.log (err  );} else {res.json (курсы);}});}); //Определенный маршрут обновления router.route ('/update/: id'). Post (function (req, res) {Course.findById (req.params.id, function (err, course) {if (! Course) return  next (новая ошибка ('Не удалось загрузить документ')); else {course.course_name = req.body.course_name; course.course_price = req.body.course_price; course.save (). then (course => {res.  json ('Успешно обновлено');}). catch (err => {res.status (400) .send ("невозможно обновить базу данных");});  }});  }); //Определенное удаление |  удалить |  уничтожить маршрут router.route ('/delete/: id'). get (function (req, res) {Course.findByIdAndRemove ({_ id: req.params.id}, function (err, course) {if (err) res  .json (err); else res.json ('Успешно удалено');});}); module.exports = router; 

Теперь вы проверяете себя и тестируете все маршруты в Почтальон.

Итак, наконец, MongoDB Node js Rest API Example завершен. Этот пост немного длинный, но я изо всех сил старался показать все с нуля. Надеюсь, тебе понравится. Если какие-то концепции останутся, я расскажу о них в следующих статьях. Так что следите за обновлениями.

Оцените статью
nanomode.ru
Добавить комментарий