Это часть 03 из серии статей Node.js API + MongoDB CRUD Operations. Если вы не читали Часть 01 и Часть 02, вы не опоздали вот ссылки, и потратили на них немного времени. [Ссылка на часть 01] [Ссылка на часть 02].

Мы инициировали наше приложение, и теперь наш сервер работает на порту 3000 в части 01. Кроме того, мы успешно подключили базу данных в части 02.

Запустите приложение во встроенном терминале, используя npm start. Теперь пришло время реализовать модель и контроллеры.

📌Что такое модель?

Модель, которую вы определяете на сервере NodeJS, представляет собой абстракцию данных в вашей базе данных MongoDB, представленную в виде документа. Из-за этой абстракции вы можете использовать схемы «Mongoose» для создания плана того, как вы хотите, чтобы добавленные данные выглядели и вели себя. Проще говоря, модели — это структуры данных, которые мы используем для определения формы наших данных.

Теперь следует создать соответствующий класс модели. Затем создайте новую папку для models и создайте в ней новый файл как employees.model.js .

После этого импортируйте пакет mongoose внутрь employees.model.js, чтобы создать модель. Затем вызовите метод с именем model() .

В первом параметре мы можем назвать модель, а во втором параметре мы можем передать схему, которая представляет собой структуру данных, которые мы собираемся сохранить в БД. Затем в качестве третьего параметра мы должны ввести имя, которым мы хотим назвать коллекцию.

const mongoose = require("mongoose");

mongoose.model(
  "Employee",
  {
    fullName: { type: String },
    posiotion: { type: String },
    location: { type: String },
    salary: { type: Number },
  },
  "employees"
);

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

const mongoose = require("mongoose");

module.exports=mongoose.model(
  "Employee",
  {
    fullName: { type: String },
    posiotion: { type: String },
    location: { type: String },
    salary: { type: Number },
  },
  "employees"
);

📌Что такое контроллер в этом приложении?

Контроллеры — это файлы JavaScript, содержащие набор методов, называемых действиями, к которым клиент обращается по запрошенному маршруту. Код контроллера выступает в роли связующего звена между моделью и представлением, получая вводимые пользователем данные и решая, что с ними делать. Это мозг приложения, который связывает воедино модель и представление. Контроллер принимает запросы пользователей, взаимодействует с моделью и выбирает представление для ответа.

Давайте создадим контроллер сотрудника. Для этого создайте новую папку с именем controllers. Затем создайте файл employee.controller.js в папке контроллера. Теперь нам нужно импортировать express, чтобы привыкнуть к методам HTTP. После этого объект Router должен быть создан, как показано ниже:

const express = require("express");
const router = express.Router()

Объект маршрутизатора Express представляет собой набор промежуточного программного обеспечения и маршрутов. Это мини-приложение внутри основного приложения. Он может выполнять только функции промежуточного программного обеспечения и маршрутизации и не может работать сам по себе. Он также ведет себя как промежуточное ПО, поэтому мы можем использовать его с приложением.

📌Что такое метод получения HTTP?

Метод GET используется для получения информации с заданного сервера по заданному URI.

Теперь пришло время реализовать метод get. router.get( path, callback ) Здесь путь — ‘/’, а обратный вызов — (req,res)=>{ }.

⭕Параметры:

  1. path: это путь, для которого вызывается промежуточная функция.
  2. обратный вызов. Это может быть функция промежуточного программного обеспечения или ряд/массив функций промежуточного программного обеспечения.
router.get('/',(req,res)=>{
    
})

Теперь ваш файл employee.controller.js выглядит следующим образом.

const express = require("express");
const router = express.Router();

router.get("/", (req, res) => {

});

Затем нам нужно импортировать модель, которую мы реализовали, как показано ниже, в файле employee.controller.js.

const Employee=require('../controllers/employee.model')

Итак, модель, экспортированная из employees.model.js, импортируется. Здесь соглашение о символах переменной обычно должно начинаться с верхнего регистра.

Теперь вызовите метод find() внутри функции обратного вызова. Затем мы можем написать ответ об успехе.

router.get("./", (req, res) => {
  Employee.find()
    .then((data) => res.send(data))
    .catch((err) => console.log(err));
});

Здесь этот метод get используется для извлечения всех данных из коллекции сотрудников. Для этого нам нужно экспортировать сюда объект маршрутизатора.

const express = require("express");
const router = express.Router();

const Employee = require("../models/employee.model");
router.get("/", (req, res) => {
  Employee.find()
    .then((data) => res.send(data))
    .catch((err) => console.log(err));
});
module.exports=router

И импортируйте экспортированный объект маршрутизатора выше в файл index.js (сервер).

const employeeRoutes=require('./controllers/employee.controller')

Теперь мы можем настроить маршрутизацию для приложения, вызвав метод app.use() внутри файла index.js. Затем необходимо указать базовый путь, а затем передать employeesRoute .

app.use('./api/employees',employeeRoutes)

Наконец, ваш файл index.js выглядит следующим образом.

const express = require("express");
const bodyParser = require("body-parser");
const dbConnection = require("./db.js");
const employeeRoutes=require('./controllers/employee.controller')
const app = express();

//middleware
app.use(bodyParser.json());

app.use('/api/employees',employeeRoutes)

dbConnection()
  .then(() => {
    console.log("DB is connected!!")
    app.listen(3000, () => console.log("Server is started on 3000"));
  })
  .catch((err) => console.log(err));

Здесь мы разместили сервер на порту 3000. Затем в браузере мы можем проверить запрос на получение, как показано ниже. Для этого вы можете использовать URL-адрес localhost:3000/api/employees. Итак, мы видим пустой массив, так как мы не вставляли данные в базу данных.

Вау…, гениально…😍 мы подошли к определенному уровню. Я думаю, лучше сделать небольшой перерыв. Хорошо, тогда встретимся с Часть 04, чтобы продолжить. Там мы обсудим другие методы HTTP и некоторые программы, такие как postman.

Если вам нужны какие-либо разъяснения, пожалуйста, оставьте комментарий здесь.

Спасибо, что прочитали эту статью, пока, ребята…👋👋👋👋👋