Node.js modullari
Node.js-dagi modul nima?
Modullar Node.js ilovalarining qurilish bloklari bo‘lib, kodni mantiqiy, qayta foydalanish mumkin bo‘lgan komponentlarga ajratish imkonini beradi. Ular yordam beradi:
- Kodni boshqariladigan fayllarga tashkil qilish
- Inkapsulatsiya funksiyasi
- Global nomlar maydoni ifloslanishining oldini olish
- Kodni saqlash va qayta foydalanishni yaxshilash
Node.js ikkita modul tizimini qo‘llab-quvvatlaydi: CommonJS (an’anaviy) va ES modullari (ECMAScript modullari).
Bu sahifa CommonJS-ni qamrab oladi, ES modullari esa alohida yoritilgan.
Asosiy o‘rnatilgan modullar
Node.js ikkilik tizimga kompilyatsiya qilingan bir nechta o‘rnatilgan modullarni taqdim etadi.
Bu yerda eng ko‘p ishlatiladigan ba’zilari:
fs- Fayl tizimi (fs) operatsiyalarihttp- HTTP server va mijozpath- Fayl yo‘li yordamchi dasturlarios- Operatsion tizim yordamchi dasturlarievents- Voqealarni boshqarish
util- Utility funksiyalaristream- Stream bilan ishlashcrypto- Kriptografik funksiyalarurl- URLni tahlil qilishquerystring- URL so‘rov stringini qayta ishlash
Har qanday o‘rnatilgan moduldan foydalanish uchun require() funksiyasidan foydalaning:
Misol: Bir nechta o‘rnatilgan modullardan foydalanish
const http = require('http');
Endi siz modulning server yaratish kabi xususiyatlaridan foydalanishingiz mumkin:
Misol: oddiy HTTP serveri
http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/html'});
res.end('Hello World!');
}).listen(8080);
Misolni ishga tushirish »
Modullarni yaratish va eksport qilish
Node.js da .js kengaytmali har qanday fayl modul hisoblanadi. Siz moduldan funksionallikni bir necha usul bilan eksport qilishingiz mumkin:
1. Bir nechta elementlarni eksport qilish
Bir nechta eksport uchun exports obyektiga xususiyatlar qo‘shing:
Misol: utils.js
// Exporting multiple functions
const getCurrentDate = () => new Date().toISOString();
const formatCurrency = (amount, currency = 'USD') => {
return new Intl.NumberFormat('en-US', {
style: 'currency',
currency: currency
}).format(amount);
};
// Method 1: Exporting multiple items
exports.getCurrentDate = getCurrentDate;
exports.formatCurrency = formatCurrency;
// Method 2: Exporting an object with multiple properties
// module.exports = { getCurrentDate, formatCurrency };
2. Bitta elementni eksport qilish
Bitta elementni (funksiya, obyekt va boshqalar) eksport qilish uchun uni module.exports ga tayinlang:
Misol: logger.js
class Logger {
constructor(name) {
this.name = name;
}
log(message) {
console.log(`[${this.name}] ${message}`);
}
error(error) {
console.error(`[${this.name}] ERROR:`, error.message);
}
}
// Exporting a single class
module.exports = Logger;
3. Modullaringizdan foydalanish
Nisbiy yoki mutlaq yo‘l bilan require() yordamida maxsus modullaringizni import qiling va foydalaning:
Misol: app.js
const http = require('http');
const path = require('path');
// Importing custom modules
const { getCurrentDate, formatCurrency } = require('./utils');
const Logger = require('./logger');
// Create a logger instance
const logger = new Logger('App');
// Create server
const server = http.createServer((req, res) => {
try {
logger.log(`Request received for ${req.url}`);
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(`<h1>Welcome to our app!</h1>`);
res.write(`<p>Current date: ${getCurrentDate()}</p>`);
res.write(`<p>Formatted amount: ${formatCurrency(99.99)}</p>`);
res.end();
} catch (error) {
logger.error(error);
res.writeHead(500, { 'Content-Type': 'text/plain' });
res.end('Internal Server Error');
}
});
// Start server
const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
logger.log(`Server running at http://localhost:${PORT}`);
});
Modulni yuklash va keshlash
Node.js modullarni birinchi marta yuklangandan keyin keshlaydi. Bu shuni anglatadiki, keyingi require() chaqiruvlari keshlangan versiyani qaytaradi.
Modul ravshanligi
Agar sizga modul kerak bo‘lsa, Node.js uni quyidagi tartibda qidiradi:
- Core Node.js modules (like
fs,http) node_modulespapkalaridagi tugun modullari- Lokal fayllar (
./yoki../prefiksi bilan)
Misolni terminalingizda ishga tushiring:
C:\Users\<Your Name>> node demo_module.js
Natijani brauzeringizda ko‘rish uchun http://localhost:8080 saytiga tashrif buyuring.
Eng yaxshi amaliyotlar
Modulni tashkil etish
- Modullarni bitta mas’uliyatga yo‘naltiring
- Ma’noli fayl va katalog nomlaridan foydalaning
- Tegishli funksiyalarni birgalikda guruhlash
- Modulga kirish nuqtalari uchun
index.jsdan foydalaning
Eksport naqshlari
- Kommunal xizmatlar uchun nomli eksportlarga ustunlik bering
- Yagona class modullari uchun standart eksportlardan foydalaning
- Modulingizning API-ni hujjatlang
- Agar kerak bo‘lsa, modulni ishga tushirishni boshqaring
Xulosa
Modullar Node.js da asosiy tushunchadir. Ular sizga kodni qayta foydalanish mumkin bo‘lgan, xizmat ko‘rsatish mumkin bo‘lgan birliklarga ajratish imkonini beradi.
Modullarni qanday yaratish, eksport qilish va ulardan samarali foydalanishni tushunib, siz kengaytiriladigan va yaxshi tuzilgan ilovalarni yaratishingiz mumkin.
Asosiy takliflar:
- Node.js sukut bo‘yicha CommonJS modullaridan foydalanadi
- Import qilish uchun
require()va eksport uchunmodule.exportsdan foydalaning - Modullar birinchi yuklangandan keyin keshlanadi
- Modulni tashkil etish va tuzilishi bo‘yicha eng yaxshi amaliyotlarga rioya qiling
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
