Это часть 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)=>{ }
.
⭕Параметры:
- path: это путь, для которого вызывается промежуточная функция.
- обратный вызов. Это может быть функция промежуточного программного обеспечения или ряд/массив функций промежуточного программного обеспечения.
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.
Если вам нужны какие-либо разъяснения, пожалуйста, оставьте комментарий здесь.
Спасибо, что прочитали эту статью, пока, ребята…👋👋👋👋👋