Node.js #2. Modullarni eksport qilish va ular bilan ishlash,

Node.js #2. Modullarni eksport qilish va ular bilan ishlash,

Node.js #2. Modullarni eksport qilish va ular bilan ishlash,

Salom hammaga. Anchadan beri maqollar yozmagan edim aniqrog’i 25 dekabrdan beri. Mana ancha vaqt o’tib ketti va albatta yangi maqolalar yozish vaqti keldi. Avval eski maqollarni o’qimagan bo’lsangiz, ularni o’qib chiqishingizni maslahat beraman:
eski maqolalar

Ana endi
Node.js haqida maqolalarni boshlaymiz endi bunday uzulishlar bo’lmaydi degan umiddaman.

Bu maqolada esa biz Node.js modulelar bilan ishlash to’g’risida gaplashamiz. Yani bir faylda yozilgan funksiyani, boshqa bir faylda chaqirish ishlatish va Node.jsni standart modullarni bilan ishlash ko’rib chiqamiz.

Modullarni bog’lash
require orqali biron bir o’zgaruvchiga biriktirish orqali amalga oshiriladi. Masalan HTTP modulni ulash uchun

var http = require('http');

shunday yo’l bilan Node.jsdagi standart paketlar, npm paket(bu haqida keyingi darsda) va o’zimiz yozgan modulllar bilan ishlash imkonini beradi. Require bilan o’zimiz yozgan modullarni ishlatsak ham bo’ladi. Require o’zining modullari ichidan qidiradi, keyin esa aynan shu papkadagi node_modules papkasidan va agar hech qaysida topa olmasa unda aynan shu papkadagi fayllardan qidiradi.

Kelinglar o’zimiz bitta modul yozamiz: app.js, controller.js fayllari bo’ladi.

app.js:

// Controller.js faylinidagi moduleni ctrl o`zgaruvchiga biriktiramiz 
var ctrl = require('./controller.js'); 
// ctrl ichida yozilgan init funksiyani yozgan chaqiramiz va unga ism yozamiz. 
ctrl.init('Farrukh');

Ana endi controller.js faylida init funksiyasi yozishimiz kerak:

module.exports = {
    init: function(name){
        console.log(name);
    }
};

Boshqa fayldan faqirish mumkin bo’lgan barcha o’zgaruvchi, funksiyalarni module.exports ichga yoziladi, undan tashqaridagi kodlar esa private yani faqat shu fayl ichida ishga tushurish mumkin bo’ladi. Va nihoyat app.js faylini ishga tushurishimiz kerak bo’ladi.

node app.js

Shunday qilib bir fayl ichida, boshqa faylda yozilgan funksiyani chaqirishim mumkin bo’ladi. Kelinglar controller.js faylida yana bir boshqa bir modulni bog’laymiz masalan user.js faylida «say» degan funksiya boladi u funksiya salom beradigan kod yozamiz.

var actions = {
    say: function(name) {
        if(!name) return console.error('Ism yozilmadi');
        console.log(`Hello ${name}`);
    }
};
module.exports = actions;

controller.jsda esa user.jsni ulab, uning ichidagi say funksiyasini chaqiramiz.

var user = require('./user.js');
module.exports = {
    init: function(name){
        user.say(name);
    }
};

Shunday qilib modul qilib chaqirilgan fayl ichida boshqa bir modulni ha ishlatsa bo’ladi.

Kelinglar Node.jsning standart modullarni bilan ishlab ko’ramiz. Masalan FileSystem moduli(fs) bog’lab, fayl yaratish va uni o’qib beradigan dastur yozamiz.

index.js fayl yaratamiz:

var fs = require('fs');
// Fayl yaratish
fs.writeFile('file.txt', 'Node.js is awesome', function(err) {
   // Agar fayl yozishda xatolik bo'lsa uni konsolga chiqaramiz.
    if(err) return console.log(err);
});
// Fayl o'qib, uni konsolga chiqarmiz.
fs.readFile('file.txt', {encoding: 'utf-8'}, function(err, result) {
    // Agar faylni o`qiy olmasa, xatoni konsolga chiqaramiz.
    if(err) return console.log(err);
    console.log(result);
});

Shunday tarzda modullarni ulab uning ichidagi funksiyalarni, o’zgaruvchilarni ishlatishingiz mumkin bo’ladi. Eslatib o’taman require orqali ulangan barcha modullar obyekt ko’rinishda bo’ladi. Bunga ishonch hosil qilish uchun quyidagi kodni ishga tushurib ko’ring:

var fs = require('fs');
console.log(fs);

E’tiboringiz uchun rahmat, keyingi maqolalar bundan ham qiziqroq bo’ladi 🙂

Umumiy Dasturlash
Node.js #2. Modullarni eksport qilish va ular bilan ishlash