Muhammad Al-Xorazmiy nomidagi
Toshkent Axborot texnologiyalari
universiteti
Asosiy server.js ni yozib oldik’ bunga Error
handler ham qoshdik
server.js
Vazifasi:
o Ilovaning asosiy serverini ishga tushirish uchun
foydalaniladi.
o HTTP serverini yaratadi va kerakli yo'nalishlarni va
middleware'ni o'rnatadi.
o Foydalanuvchilarning so'rovlariga javob berish
uchun asosiy nuqtadir.
Buni midlleware ga yonaltirdik
middlewares
Vazifasi:
o So'rovlarni qayta ishlash jarayonida qo'shimcha
funktsiyalarni bajaradi.
o Misol uchun, autentifikatsiya (foydalanuvchini
tekshirish), so'rov loglash, xatolarni boshqarish va
boshqa funktsiyalarni amalga oshirish uchun
ishlatiladi.
o Middleware'lar so'rovlar va javoblar o'rtasida
joylashgan va ularni o'zgartirish yoki to'xtatish
imkonini beradi.
Bu yerda ta router bolib ular authRouter
tourRouter va userRouter bu yerdan user
routerga otamiz
Vazifasi:
HTTP
funksiyalariga
so'rovlarini
yo'naltirish
tegishli
uchun
controller
yo'nalishlarni
belgilaydi
AuthRouter bu registratsiya qiladi
Bu yerda findAllUsers, findUserById , updateUsersById,
addUsers, deleteUsersById
bor bular controllerga
jonatadi va xuddi shunday postRouter bor
controller
Vazifasi:
o Foydalanuvchi tomonidan yuborilgan so'rovlarni
qayta ishlash uchun asosiy mantiqni ta'minlaydi.
o Ma'lumotlarni olish, yaratish, yangilash yoki o'chirish
kabi CRUD (Create, Read, Update, Delete)
operatsiyalarini bajaradi.
o
Har bir controller funksiyasi ma'lum bir yo'nalishga
mos keladi va ma'lumotlar bilan o'zaro aloqada
bo'ladi.
models
Vazifasi:
o Ma'lumotlar bazasidagi ob'ektlar va ularning
tuzilishini belgilaydi.
o ORM (Object-Relational Mapping)
kutubxonalari yordamida ma'lumotlar bazasi
bilan o'zaro aloqada bo'ladi.
o
Har bir modelga mos keladigan validatsiya va
metodlarni taqdim etadi, bu esa ma'lumotlar
bilan ishlashni osonlashtiradi.
bu yerda mogoDB database foydalanganmiz
MongoDB — bu NoSQL (strukturali bo'lmagan)
ma'lumotlar bazasi bo'lib, u yuqori darajadagi ishlash,
kengaytiriluvchanlik va tezkor ma'lumotlar saqlash
imkonini beradi. Keling, MongoDB haqida batafsilroq
ma'lumot beraman.
1. Asosiy Tushunchalar
Document: MongoDB'da ma'lumotlar JSON
formatida saqlanadi. Har bir hujjat (document) kalitqiymat juftlari (key-value pairs) sifatida ifodalanadi.
Collection: Hujjatlar to'plami. Collection'lar
ma'lumotlar bazasidagi jadvallar kabi ishlaydi, lekin
ular mustaqil va strukturali bo'lmagan hujjatlarni
saqlaydi.
Database: Bir yoki bir nechta collection'larni o'z
ichiga oladi. MongoDB bir nechta ma'lumotlar
bazalarini qo'llab-quvvatlaydi.
2. O'ziga Xos Xususiyatlar
Kengaytiriluvchanlik: MongoDB horizontal
kengaytiriluvchanlikni ta'minlaydi, bu esa yangi
serverlarni qo'shish orqali ma'lumotlar bazasini
kengaytirish imkonini beradi.
Schema-less: Ma'lumotlar bazasi tuzilishi qat'iy
emas, bu esa dasturchilarga hujjatlarni istalgan
shaklda saqlash imkonini beradi.
Tezkor Ishlash: Ma'lumotlar bazasi yuqori tezlikda
yozish va o'qish operatsiyalarini bajaradi, bu esa uni
real vaqtli ilovalar uchun ideal qiladi.
3. Asosiy Funktsiyalar
CRUD Operatsiyalari: MongoDB ma'lumotlarni
yaratish (Create), o'qish (Read), yangilash (Update),
va o'chirish (Delete) imkonini beradi.
Indexlash: Qidiruv jarayonini tezlashtirish uchun
indexlar yaratish imkoniyati mavjud.
Aggregation Framework: Ma'lumotlarni
guruhlash, filtrlayish va tahlil qilish uchun qulay
vositalar taqdim etadi.
4. O'rnatish
MongoDB'ni o'rnatish juda oson. Uni rasmiy vebsaytidan yuklab olib o'rnatishingiz mumkin. O'rnatuvchi
ko'rsatmalari tizimga qarab farq qiladi (Windows,
macOS, Linux).
5. Dasturiy Ta'minot
MongoDB Atlas: Bulutda MongoDB ma'lumotlar
bazasini boshqarish uchun xizmat.
Mongoose: Node.js ilovalari uchun MongoDB bilan
ishlashni osonlashtiradigan ODM (Object Data
Modeling) kutubxonasi.
.env
Vazifasi:
o Atrof-muhit o'zgaruvchilarini saqlaydi,
masalan, API kalitlari, parollar va boshqa
maxfiy ma'lumotlar.
o Ushbu faylni .gitignore fayliga qo'shish orqali
versiya nazoratidan chetlatish mumkin, bu esa
maxfiylikni ta'minlaydi.Node.js ilovalari
dotenv kutubxonasi yordamida bu
ma'lumotlarni olishadi.
Mana codimiz 4000 portda run boldi va mongoDB ga
ulandi