MongoDB
MongoDB — это кроссплатформенная программа базы данных, ориентированная на работу с документами, с доступным исходным кодом. Классифицируется как программа базы данных NoSQL.

Node
Node.js — это кроссплатформенная внутренняя среда выполнения JavaScript с открытым исходным кодом, работающая на движке V8 и выполняющая код JavaScript вне веб-браузера.

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

Mongoose
Mongoose.js соединяет ваши кластеры или коллекции MongoDB с вашим приложением Node.js. Это позволяет вам создавать схемы для ваших документов. Mongoose предоставляет множество функций при создании и работе со схемами.

Каков ваш вынос

В этой статье вы узнаете, как подключить экземпляр MongoDB к приложению Node.js.
Начнем… 💃

Предпосылки

  • Node.js установлен на вашем компьютере.
  • Экземпляр MongoDB, работающий на вашем компьютере.
  • Некоторые знания Node.js и Express.js.
  • Почтальон для тестирования конечных точек API.

1. Установка Express и Mongoose

Создайте новый каталог men_tutorial и перейдите в него

Введите npm init -y, чтобы создать проект без подсказок npm.

Установите Express и Mongoose с помощью команды
npm install express mongoose --save

2. Создайте соединение

Создайте новый файл server.js, чтобы запустить наш сервер Express.js.

Загрузите mongoose и express, добавив следующий код в server.js.

const express = require("express");
const mongoose = require("mongoose");
const Router = require("./routes")

const app = express();

app.use(express.json());

Затем подключитесь к локальному экземпляру MongoDB, используя функцию mongoose.connect(). Мы проходим useNewUrlParser: true и т. д., чтобы избежать DeprecationWarning.

mongoose.connect('mongodb://localhost:27017/usersdb',
  {
    useNewUrlParser: true
  }
);

Чтобы убедиться, что подключение прошло успешно, добавьте следующий код прямо под файлом mongoose.connect().

const db = mongoose.connection;
db.on("error", console.error.bind(console, "connection error: "));
db.once("open", function () {
  console.log("Connected successfully");
});

Затем настройте приложение на прослушивание порта 3000.

app.use(Router);

app.listen(3000, () => {
  console.log("Server is running at port 3000");
});

Конец файлаserver.js.

3. Создайте схему

Создайте еще один файл models.js и добавьте следующий код.

const mongoose = require("mongoose");
const UserSchema = new mongoose.Schema({
name: {
type: String,
required: true,
},
lucky_number: {
type: Number,
default: 0,
},
});
const User = mongoose.model("User", UserSchema);
module.exports = User;

Мы создаем схему UserSchema с помощью метода mongoose.Schema(). Схема собирает поля name и lucky_number, отправленные из запроса.

Затем мы экспортируем схему, используя последние 2 строки.

Конец файлаmodel.js.

4. Создание конечной точки POST

Создайте новый файл routes.js. Этот файл определяет конечные точки для нашего приложения.

Загрузите express и схему, которую мы создали на шаге 3, добавив следующий код.

const express = require("express");
const userModel = require("./models");
const app = express();

Затем создайте конечную точку POST, добавив следующий код.

app.post("/add_user", async (request, response) => {
    const user = new userModel(request.body);
  
    try {
      await user.save();
      response.send(user);
    } catch (error) {
      response.status(500).send(error);
    }
});

Мы создаем маршрут /add_user для добавления нового пользователя в базу данных. Мы анализируем содержимое для сохранения в базе данных, используя строку const user = new userModel(request.body);.

Затем мы используем блок try/catch для сохранения объекта в базе данных с помощью метода .save().

5. Создание конечной точки GET

Добавьте следующие строки кода в файл routes.js.

app.get("/users", async (request, response) => {
  const users = await userModel.find({});

  try {
    response.send(users);
  } catch (error) {
    response.status(500).send(error);
  }
});

Мы создаем маршрут /users для получения всех пользователей, сохраненных с использованием маршрута /add_user. Этих пользователей мы собираем из базы методом .find(). Затем мы используем блок try/catch для «отправки» пользователей в эту конечную точку.

Наконец, экспортируйте эти конечные точки, добавив строку ниже.

module.exports = app;

6. Ваше приложение готово… 💃

Подайте приложение, выполнив команду ниже:

node server.js 

Вывод:

7. Тестирование конечных точек с помощью Postman

Почтальон — приложение для тестирования API. Это HTTP-клиент, который тестирует HTTP-запросы с использованием графического пользовательского интерфейса, с помощью которого мы получаем различные типы ответов, которые необходимо впоследствии проверить. Следите за информацией об установке и использовании Postman здесь.

Давайте посмотрим, как работает наше приложение…

POST
Откройте Postman и отправьте POST запрос к конечной точке http://localhost:3000/add_user.

Новый users будет добавлен в базу данных столько раз, сколько раз мы выполним запрос POST. Мы сможем увидеть всех пользователей, использующих конечную точку GET, что также показано ниже.

GET
Откройте Postman и отправьте GET запрос к конечной точке
http://localhost:3000/users.

Я добавил еще двух пользователей просто для демонстрации 🙌

Наконец, вот оно. Мы узнали, как настроить MongoDB, используя схемы Node.js, Express.js и Mongoose. Вы также можете подключиться к MongoDB Atlas или любой другой базе данных, расположенной на удаленном уровне. Процедура будет такой же, вам просто нужно будет обновить учетные данные базы данных при подключении. 🔏

Все файлы доступны на моем гитхабе здесь 🚀

Спасибо :)

Надеюсь, вам понравилась статья 💌
Пожалуйста, дайте мне знать, оставив сообщение в комментариях
Пишите свои предложения по новым статьям здесь 📬
Вы также можете купить мне кофе здесь ☕️

Дополнительные материалы на plainenglish.io