Node.js'deki bir modül, tek bir birimde mantıksal bir kod kapsüllemesidir. Kodu gelecekteki amaçlar için daha yönetilebilir ve sürdürülebilir kılacak şekilde her zaman ayırmak her zaman iyi bir programlama uygulamasıdır. Node.js'deki modüllerin devreye girdiği yer burasıdır.
Her modül, kendi kapsüllenmiş işlevselliğine sahip bağımsız bir varlık olduğundan, ayrı bir iş birimi olarak yönetilebilir.
Bu eğitimde öğreneceksiniz-
- Node.js'deki modüller nelerdir?
- Node.js'de modülleri kullanma
- NPM modülleri oluşturma
- Modülleri genişletme
- NPM Modüllerini Yayınlama
- Üçüncü taraf paketlerini npm ile yönetme
- Package.json dosyası nedir
Node.js'deki modüller nelerdir?
Daha önce belirtildiği gibi, Düğüm js'deki modüller, kodu ayrı bir mantıksal birimde kapsüllemenin bir yoludur. Piyasada Node js içerisinde kullanılabilen hazır modüller bulunmaktadır.
Aşağıda bir Node js uygulamasında kullanılan popüler modüllerden bazıları verilmiştir
- Ekspres çerçeve - Ekspres, web ve mobil uygulamalar için sağlam bir özellik kümesi sağlayan minimal ve esnek bir Node js web uygulaması çerçevesidir.
- Socket.io - Socket.IO, gerçek zamanlı çift yönlü olay tabanlı iletişim sağlar. Bu modül, sohbet tabanlı uygulamaların oluşturulması için iyidir.
- Jade - Jade, yüksek performanslı bir şablon motorudur ve düğüm ve tarayıcılar için JavaScript ile uygulanır.
- MongoDB - MongoDB Node.js sürücüsü, MongoDB için resmi olarak desteklenen node.js sürücüsüdür.
- Restify - restify hafif bir çerçevedir ve REST API'leri oluşturmak için ifade edilene benzer
- Bluebird - Bluebird, yenilikçi özelliklere ve performansa odaklanan tam özellikli bir söz kitaplığıdır
Node.js'de modülleri kullanma
Bir Node.js uygulamasında modülleri kullanmak için, önce Node paket yöneticisi kullanılarak kurulmaları gerekir.
Aşağıdaki komut satırı, bir "ekspres" modülünün nasıl kurulabileceğini gösterir.
npm hızlı yükleme
- Yukarıdaki komut, "ekspres modülleri" içeren gerekli dosyaları indirecek ve kurulumla da ilgilenecektir.
- Modül kurulduktan sonra, bir modülü Node.js uygulamasında kullanmak için 'require' anahtar kelimesini kullanmanız gerekir. Bu anahtar kelime, Node.js'nin bir modülün işlevselliğini bir uygulamaya dahil etmek için kullandığı bir yoldur.
"Require" anahtar sözcüğünü nasıl kullanabileceğimize dair bir örneğe bakalım. Aşağıdaki "Guru99" kod örneği, require işlevinin nasıl kullanılacağını gösterir
var express=require('express');var app=express();app.set('view engine','jade');app.get('/',function(req,res){});var server=app.listen(3000,function(){});
- İlk ifadenin kendisinde, ekspres modülü eklemek için "require" anahtar sözcüğünü kullanıyoruz. "Ekspres" modülü, Node.js geliştirme için optimize edilmiş bir JavaScript kitaplığıdır. Bu, en yaygın kullanılan Node.js modüllerinden biridir.
- Modül dahil edildikten sonra, modül içindeki işlevselliği kullanmak için bir nesnenin oluşturulması gerekir. Burada ekspres modülün bir nesnesi oluşturulur.
- Modül, "gerekli" komutu kullanılarak dahil edildikten ve bir "nesne" oluşturulduktan sonra, ekspres modülün gerekli yöntemleri çağrılabilir. Burada, Node.js'de kullanılan şablon oluşturma motorunu ayarlamak için kullanılan görünüm motorunu ayarlamak için set komutunu kullanıyoruz.
Not: - (Sadece okuyucunun anlayışı için; şablon oluşturma motoru, veri dosyalarından veri toplayarak bir uygulamadaki değerleri enjekte etmeye yönelik bir yaklaşımdır. Bu kavram, küme parantezlerinin {{anahtar}} kullanıldığı Angular JS'de oldukça ünlüdür. Küme parantezlerindeki 'anahtar' kelimesi temelde sayfa görüntülendiğinde bir değer ile değiştirilecek değişkeni belirtir.)
- Burada, uygulamanın belirli bir bağlantı noktası numarasını dinlemesi için dinleme yöntemini kullanıyoruz.
NPM modülleri oluşturma
Node.js, özel modüller oluşturma yeteneğine sahiptir ve bu özel modülleri Node.js uygulamanıza dahil etmenize olanak tanır.
Kendi modülümüzü nasıl oluşturabileceğimizin basit bir örneğine bakalım ve bu modülü ana uygulama dosyamıza ekleyelim. Modülümüz sadece iki sayı eklemek gibi basit bir görevi yerine getirecektir.
Modülleri nasıl oluşturabileceğimizi ve uygulamamıza dahil edebileceğimizi görmek için aşağıdaki adımları takip edelim.
Adım 1) "Addition.js" adlı bir dosya oluşturun ve aşağıdaki kodu ekleyin. Bu dosya modülünüzün mantığını içerecektir.
Bu dosyaya girecek kod aşağıdadır;
var exports=module.exports={};exports.AddNumber=function(a,b){return a+b;};
- "Dışa aktarım" anahtar sözcüğü, bu dosyada tanımlanan işlevselliğe gerçekten başka dosyalar tarafından erişilebilmesini sağlamak için kullanılır.
- Daha sonra 'AddNumber' adında bir fonksiyon tanımlıyoruz. Bu fonksiyon, a ve b olmak üzere 2 parametre alacak şekilde tanımlanmıştır. İşlev, işlevi diğer uygulama modülleri tarafından erişilebilen genel bir işlev yapmak için "dışa aktarım" modülüne eklenir.
- Sonunda fonksiyonumuzun parametrelerin katma değerini döndürmesini sağlıyoruz.
Artık 2 sayı ekleme işlevine sahip özel modülümüzü oluşturduk. Şimdi bu modülü çağıracak bir uygulama oluşturma zamanı.
Bir sonraki adımda, özel modülümüzü arayacak uygulamayı nasıl oluşturacağımızı gerçekten göreceğiz.
2. Adım) Ana uygulama dosyanız olan "app.js" adlı bir dosya oluşturun ve aşağıdaki kodu ekleyin
var Addition=require('./Addition.js');console.log(Addition.AddNumber(1,2));
- İşlevselliği Addition.js dosyasına dahil etmek için "gerekli" anahtar kelimesini kullanıyoruz.
- Addition.js dosyasındaki işlevlere artık erişilebildiğinden, artık AddNumber işlevine bir çağrı yapabiliriz. Fonksiyonda 2 sayıyı parametre olarak geçiyoruz. Daha sonra değeri konsolda görüntülüyoruz.
Çıktı :
- App.js dosyasını çalıştırdığınızda, konsol günlüğünde 3 değerinin çıktısını alırsınız.
- Sonuç, Addition.js dosyasındaki AddNumber işlevinin başarıyla çağrılmış olması ve döndürülen 3 değerinin konsolda görüntülenmiş olmasıdır.
Not: - Addition.js modülümüzü yüklemek için henüz "Düğüm paketi yöneticisini" kullanmıyoruz. Bunun nedeni, modülün zaten yerel makinedeki projemizin bir parçası olmasıdır. Düğüm paket yöneticisi, sonraki başlıkta gördüğümüz internette bir modül yayınladığınızda resme geliyor.
Modülleri genişletme
Modüller oluştururken, bir modülü diğerinden genişletmek veya devralmak da mümkündür.
Modern zaman programlamasında, ortak modüllerden oluşan bir kitaplık oluşturmak ve ardından gerekirse bu ortak modüllerin işlevselliğini genişletmek oldukça yaygındır.
Node.js'de modülleri nasıl genişletebileceğimizin bir örneğine bakalım.
Adım 1) Temel modülü oluşturun.
Örneğimizde, "Tutorial.js" adlı bir dosya oluşturun ve aşağıdaki kodu yerleştirin.
Bu kodda, sadece konsola bir string döndüren bir fonksiyon yaratıyoruz. Döndürülen dize "Guru99 Eğitimi" dir.
var exports=module.exports={};exports.tutorial=function(){console.log("Guru99 Tutorial")}
- Dışa aktarma modülü kullanılır, böylece bu dosyada tanımlanmış olan işlev Node.js'deki diğer modüllerde kullanılabilir
- Diğer Node.js modüllerinde kullanılabilen tutorial adlı bir işlev oluşturuyoruz.
- Bu işlev çağrıldığında konsolda bir "Guru99 Eğitimi" dizisi görüntülüyoruz.
Artık Tutorial.js adlı temel modülümüzü oluşturduk. Şimdi bu temel modülü genişletecek başka bir modül oluşturma zamanı.
Bir sonraki adımda bunu nasıl yapacağımızı keşfedeceğiz.
Adım 2) Ardından, genişletilmiş modülümüzü oluşturacağız. "NodeTutorial.js" adlı yeni bir dosya oluşturun ve aşağıdaki kodu dosyaya yerleştirin.
var Tutor=require('./Tutorial.js');exports.NodeTutorial=function(){console.log("Node Tutorial")function pTutor(){var PTutor=TutorPTutor.tutorial();}}Orvar Tutor=require('./Tutorial.js');exports.NodeTutorial=function(){console.log("Node Tutorial")this.pTutor = function (){var PTutor=TutorPTutor.tutorial();}}
Yukarıdaki kodla ilgili aşağıdaki temel noktalara dikkat edin
- Yeni modül dosyasında "gerekli" işlevini kullanıyoruz. Mevcut "Tutorial.js" modül dosyasını genişleteceğimiz için, onu genişletmeden önce eklememiz gerekiyor.
- Daha sonra "Nodetutorial" adlı bir işlev oluşturuyoruz. Bu işlev 2 şey yapacak,
- Konsola bir "Düğüm Eğitimi" dizisi gönderecektir.
- "Tutorial.js" temel modülünden "Guru99 Tutorial" dizesini genişletilmiş modülümüz olan "NodeTutorial.js" ye gönderecektir.
- Burada konsola "Düğüm Eğitimi" ne bir dizi göndermek için ilk adımı gerçekleştiriyoruz.
- Bir sonraki adım, "Guru99 Eğitimi" dizesini console.log'a çıkaracak olan Eğitim modülümüzden işlevi çağırmaktır.
Adım 3) Ana uygulama dosyanız olan ve aşağıdaki kodu içeren ana app.js dosyanızı oluşturun.
var localTutor=require('./NodeTutorial.js');localTutor.NodeTutorial();localTutor.NodeTutorial.pTutor();Or use this codevar tut = new localTutor.NodeTutorial(); // Create and save objecttut.pTutor(); // Call function on object
Yukarıdaki kod aşağıdakileri yapar;
- Ana uygulama dosyamız artık "NodeTutorial" modülünü çağırıyor.
- "NodeTutorial" işlevini çağırıyoruz. Bu işlevi çağırarak, konsol günlüğünde "Düğüm Eğitimi" metni görüntülenecektir.
- Tutorial.js modülümüzü genişlettiğimizden ve pTutor adlı bir işlevi açığa çıkardığımızdan beri. Ayrıca Tutorial.js modülündeki eğitim modülünü çağırır ve konsolda "Guru99 Eğitimi" metni de görüntülenir.
Çıktı:
Node kullanarak yukarıdaki app.js kodunu çalıştırdığımız için, console.log dosyasında aşağıdaki çıktıyı alacağız
- Düğüm Eğitimi
- Guru99 Eğitimi
NPM (Node Package Manager) Modüllerini Yayınlama
Kendi modüllerini kendi Github deposunda yayınlayabilirsiniz.
Modülünüzü merkezi bir konumda yayınlayarak, bunu gerektiren her makineye kendinizi kurmak zorunda kalmazsınız.
Bunun yerine, npm'nin install komutunu kullanabilir ve yayınlanan npm modülünüzü kurabilirsiniz.
Npm modülünüzü yayınlamak için aşağıdaki adımların izlenmesi gerekir
Adım 1) Deponuzu GitHub'da (bir çevrimiçi kod deposu yönetim aracı) oluşturun. Kod depolarınızı barındırmak için kullanılabilir.
Adım 2 ) Yerel npm kurulumunuza kim olduğunuzu söylemeniz gerekir. Bu, npm'ye bu modülün yazarının kim olduğunu, e-posta kimliğinin ve bu kimlik ile ilişkilendirilmesi gereken mevcut herhangi bir şirket URL'sinin ne olduğunu söylememiz gerektiği anlamına gelir. Tüm bu ayrıntılar, yayınlandığında npm modülünüze eklenecektir.
Aşağıdaki komutlar, npm modülünün yazarının adını, e-postasını ve URL'sini belirler.
npm, init.author.name "Guru99."
npm set init.author.email " Bu e-posta adresi istenmeyen postalardan korunuyor. Görüntülemek için JavaScript'i etkinleştirmeniz gerekir."
npm set init.author.url http://Guru99.com
Adım 3) Sonraki adım, son adımda sağlanan kimlik bilgilerini kullanarak npm'de oturum açmaktır. Giriş yapmak için aşağıdaki komutu kullanmanız gerekir
npm login
Adım 4) Paketinizi başlatın - Sonraki adım, package.json dosyasını oluşturmak için paketi başlatmaktır. Bu, aşağıdaki komutu vererek yapılabilir.
npm init
Yukarıdaki komutu verdiğinizde, bazı sorular sorulacaktır. En önemlisi modülünüzün sürüm numarasıdır.
Adım 5) GitHub'da Yayınlayın - Bir sonraki adım, kaynak dosyalarınızı GitHub'da yayınlamaktır. Bu, aşağıdaki komutları çalıştırarak yapılabilir.
git add.git commit -m "Initial release"git tag v0.0.1git push origin master --tags
Adım 6) Modülünüzü yayınlayın - Son bit, modülünüzü npm kayıt defterinde yayınlamaktır. Bu, aşağıdaki komutla yapılır.
npm publish
Üçüncü taraf paketlerini npm ile yönetme
Gördüğümüz gibi, "Düğüm paketi yöneticisi", Node.js uygulamalarının gerektirdiği modülleri yönetme yeteneğine sahiptir.
Modülleri yönetmek için düğüm paketi yöneticisinde bulunan bazı işlevlere bakalım.
-
Paketleri global modda kurma - Modüller global düzeyde kurulabilir, bu da temelde bu modüllerin yerel bir makinedeki tüm Node.js projeleri için mevcut olacağı anlamına gelir. Aşağıdaki örnek, global seçenekle "ekspres modülün" nasıl kurulacağını gösterir.
npm hızlı yükle -global
Yukarıdaki açıklamadaki global seçenek, modüllerin global düzeyde kurulmasına izin veren şeydir.
-
Yerel bir makinede kurulu tüm global paketleri listelemek. Bu, komut isteminde aşağıdaki komutu çalıştırarak yapılabilir.
npm listesi --global
Sisteminize önceden "ekspres modülü" kurduysanız, aşağıda gösterilecek olan çıktıdır.
Burada yerel makinede kurulu farklı modülleri görebilirsiniz.
-
Bir paketin belirli bir sürümünü yükleme - Bazen bir paketin yalnızca belirli bir sürümünü yükleme gereksinimi olabilir. Paket adını ve yüklenmesi gereken ilgili sürümü öğrendikten sonra, o belirli sürümü yüklemek için npm install komutunu kullanabilirsiniz.
Aşağıdaki örnek, alt çizgi adı verilen modülün belirli bir 1.7.0 sürümüyle nasıl kurulacağını gösterir.
npm yüklemek [email protected]
-
Bir paket sürümünü güncelleme - Bazen bir sistemdeki bir paketin daha eski bir sürümüne sahip olabilirsiniz ve piyasada bulunan en son sürüme güncellemek isteyebilirsiniz. Bunu yapmak için npm güncelleme komutu kullanılabilir. Aşağıdaki örnek, alt çizgi paketinin en son sürüme nasıl güncelleneceğini gösterir.
npm alt çizgiyi güncelle
-
Belirli bir paketi arama - Belirli bir sürümün yerel sistemde olup olmadığını araştırmak için npm arama komutunu kullanabilirsiniz. Aşağıdaki örnek, ekspres modülün yerel makineye kurulup kurulmadığını kontrol edecektir.
npm arama ekspres
-
Bir paketi kaldırma - Bir paketi yükleyebileceğinizle aynı, bir paketi de kaldırabilirsiniz. Bir paketin kaldırılması, npm'nin kaldırma komutu ile yapılır. Aşağıdaki örnek, ekspres modülün nasıl kaldırılacağını gösterir
npm kaldırma ekspres
Package.json dosyası nedir
"Package.json" dosyası, belirli bir proje hakkındaki meta verileri tutmak için kullanılır . Bu bilgiler, Node paketi yöneticisine, projenin bağımlılıkları ile birlikte nasıl ele alınması gerektiğini anlamak için gerekli bilgileri sağlar.
Package.json dosyaları, proje açıklaması, projenin belirli bir dağıtımdaki sürümü, lisans bilgileri ve yapılandırma verileri gibi bilgileri içerir.
Package.json dosyası normalde bir Node.js projesinin kök dizininde bulunur.
Bir modül yapısının npm aracılığıyla kurulduğunda nasıl göründüğüne bir örnek verelim.
Aşağıdaki anlık görüntü, Node.js projenize dahil edildiğinde ekspres modülün dosya içeriğini gösterir. Anlık görüntüden, express klasöründe package.json dosyasını görebilirsiniz.
Package.json dosyasını açarsanız, dosyada birçok bilgi göreceksiniz.
Aşağıda dosyanın bir kısmının anlık görüntüsü bulunmaktadır. Express@~4.13.1 ekspres modülün versiyon numarası kullanılan bahseder.
Özet
- Node.js'deki bir modül, tek bir birimde mantıksal bir kod kapsüllemesidir. Modüllere ayrılma, kodu gelecekteki amaçlar için daha yönetilebilir ve sürdürülebilir hale getirir
- Piyasada ifade, alt çizgi, MongoDB vb. Gibi Node.js içinde kullanılabilen birçok modül bulunmaktadır.
- Düğüm paketi yöneticisi (npm), daha sonra bir Node.js uygulamasında kullanılabilecek modülleri indirmek ve kurmak için kullanılır.
- Kişi özel NPM modülleri oluşturabilir, bu modülleri genişletebilir ve ayrıca bu modülleri yayınlayabilir.
- Düğüm paketi yöneticisi, yerel sistemdeki kurulum, kurulum kaldırma, arama vb. Gibi npm modüllerini yönetmek için eksiksiz bir komut setine sahiptir.
- Package.json dosyası, bir npm modülünün tüm meta veri bilgilerini tutmak için kullanılır.