Node.js NPM Eğitimi: Modüller Nasıl Oluşturulur, Genişletilir ve Yayınlanır
Node.js Modülleri
Node.js'deki bir modül, kodun tek bir birimde mantıksal olarak kapsüllenmesidir. Kodu, gelecekteki amaçlar için daha yönetilebilir ve bakımı kolay olacak şekilde 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.
Node.js'de Modül nedir?
Daha önce belirtildiği gibi Node.js'deki modüller, kodu ayrı bir mantıksal birimde kapsüllemenin bir yoludur. Piyasada Node.js içerisinde kullanılabilecek pek çok hazır modül bulunmaktadır.
Aşağıda Node.js uygulamasında kullanılan popüler modüllerden bazıları verilmiştir.
- Hızlı çerçeve – Express, web için sağlam bir dizi özellik sağlayan minimal ve esnek bir Node js web uygulaması çerçevesidir ve hareketli uygulamaları.
- soket.io – Socket.IO, gerçek zamanlı, çift yönlü, olaya dayalı iletişime olanak tanır. Bu modül, sohbet tabanlı uygulamaların oluşturulması için iyidir.
- yeşim taşı – Jade, yüksek performanslı bir şablon motorudur ve JavaSenaryo düğüm ve tarayıcılar için.
- MongoDB - MongoDB Node.js sürücüsü, resmi olarak desteklenen node.js sürücüsüdür. MongoDB.
- Yeniden düzenle – restify, REST API'leri oluşturmaya yönelik express'e benzer hafif bir çerçevedir
- Bluebird – Bluebird, yenilikçi özelliklere ve performansa odaklanan tam özellikli bir söz kütüphanesidir
Node.js'de modülleri kullanma
Modülleri bir arada kullanmak için node.js uygulaması için öncelikle Node paket yöneticisi kullanılarak kurulmaları gerekir.
Aşağıdaki komut satırı bir “express” modülünün nasıl kurulabileceğini gösterir.
npm hızlı kurulum
- 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 kelimesini nasıl kullanabileceğimize dair bir örneğe bakalım. Aşağıdaki “Guru99” kod örneği require fonksiyonunun nasıl kullanılacağını göstermektedir.
var express=require('express'); var app=express(); app.set('view engine','jade'); app.get('/',function(req,res) { }); var server=app.listen(3000,function() { });
- İlk ifadede express modülünü dahil etmek için “require” anahtar sözcüğünü kullanıyoruz. “Express” modülü optimize edilmiş bir modüldür JavaSenaryo Node.js geliştirme için kütüphane. Bu, en sık kullanılan Node.js modüllerinden biridir.
- Modül dahil edildikten sonra modül içerisindeki işlevselliğin kullanılabilmesi için bir nesnenin oluşturulması gerekmektedir. Burada ekspres modülün bir nesnesi yaratılır.
- Modül “require” komutu kullanılarak dahil edildikten ve bir “nesne” oluşturulduktan sonra express 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.
- Burada uygulamanın belirli bir port numarasını dinlemesini sağlamak için listen to yöntemini kullanıyoruz.
Not: -(Okuyucunun anlaması açısından; şablon oluşturma motoru, veri dosyalarından veri toplayarak bir uygulamaya değer enjekte etmeye yönelik bir yaklaşımdır. Bu kavram, Angular JS'de oldukça ünlüdür; burada küme parantezleri {{ key }}, değerlerin yerine geçmek için kullanılır. Kıvrımlı parantez içindeki 'anahtar' kelimesi temel olarak sayfa görüntülendiğinde bir değerle değiştirilecek değişkeni belirtir.)
NPM modülleri nasıl oluşturulur
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ğimize ve o modülü ana uygulama dosyamıza nasıl dahil edebileceğimize dair basit bir örneğe bakalım. Modülümüz sadece iki sayıyı toplamak gibi basit bir görevi yerine getirecektir.
Nasıl modül oluşturabileceğimizi ve bunları uygulamamıza nasıl dahil edebileceğimizi görmek için aşağıdaki adımları takip edelim.
Aşağıda NPM modüllerinin nasıl oluşturulacağına dair adım adım süreç yer almaktadır
) 1 Adım Bir dosya oluşturun ve aşağıdaki kodu yapıştırın
“Addition.js” adında 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; };
- “Exports” anahtar sözcüğü, bu dosyada tanımlanan işlevselliğe gerçekte diğer 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. İşlevi diğer uygulama modülleri tarafından erişilebilen genel bir işlev haline getirmek için işlev "dışa aktarma" modülüne eklenir.
- Son olarak 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şturduğumuza göre. Artık bu modülü çağıracak bir uygulama oluşturmanın zamanı geldi.
Bir sonraki adımda aslında özel modülümüzü çağıracak uygulamanın nasıl oluşturulacağını göreceğiz.
) 2 Adım Bir uygulama dosyası oluşturun
Ana uygulama dosyanız olan “app.js” adında bir dosya oluşturun ve aşağıdaki kodu ekleyin.
var Addition=require('./Addition.js'); console.log(Addition.AddNumber(1,2));
- Addition.js dosyasına işlevselliği dahil etmek için “require” anahtar kelimesini kullanıyoruz.
- Addition.js dosyasındaki fonksiyonlara artık ulaşılabilir olduğundan artık AddNumber fonksiyonuna çağrı yapabiliriz. Fonksiyonda parametre olarak 2 sayıyı geçiyoruz. Daha sonra değeri konsolda gösteriyoruz.
Çıktı:
- App.js dosyasını çalıştırdığınızda konsol günlüğünde 3 değerinde bir çıktı alacaksınız.
- Sonuç, Addition.js dosyasındaki AddNumber işlevinin başarıyla çağrılması ve döndürülen 3 değerinin konsolda görüntülenmesidir.
Not: – Addition.js modülümüzü kurmak için henüz “Node paket yöneticisini” kullanmıyoruz. Bunun nedeni modülün zaten yerel makinedeki projemizin bir parçası olmasıdır. Bir sonraki başlıkta göreceğimiz gibi internette bir modül yayınladığınızda Node paket yöneticisi devreye giriyor.
Node.js'de modülleri genişletme
Modüller oluştururken, bir modülü diğerinden genişletmek veya devralmak da mümkündür.
Günümüz 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ğimize dair bir örneğe bakalım.
) 1 Adım Temel modülü oluşturun.
Örneğimizde “Tutorial.js” adında bir dosya oluşturun ve aşağıdaki kodu yerleştirin.
Bu kodda sadece konsola bir dize 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ü, bu dosyada tanımlanan işlevin Node.js'deki diğer modüllerde de kullanılabilmesi için kullanılır.
- Diğer Node.js modüllerinde kullanılabilecek, öğretici adı verilen bir fonksiyon oluşturuyoruz.
- Bu fonksiyon çağrıldığında konsolda “Guru99 Eğitimi” dizesini görüntülüyoruz.
Artık Tutorial.js adlı temel modülümüzü oluşturduğumuza göre. Artık bu temel modülü genişletecek başka bir modül oluşturmanın zamanı geldi.
Bir sonraki adımda bunun nasıl yapılacağını araştıracağız.
) 2 Adım Daha sonra genişletilmiş modülümüzü oluşturacağız. “NodeTutorial.js” adında yeni bir dosya oluşturun ve aşağıdaki kodu dosyanın içine yerleştirin.
var Tutor=require('./Tutorial.js'); exports.NodeTutorial=function() { console.log("Node Tutorial") function pTutor() { var PTutor=Tutor PTutor.tutorial(); } } Or var Tutor=require('./Tutorial.js'); exports.NodeTutorial=function() { console.log("Node Tutorial") this.pTutor = function () { var PTutor=Tutor PTutor.tutorial(); } }
Yukarıdaki kod hakkında aşağıdaki önemli noktalara dikkat edin
- Yeni modül dosyasının kendisinde “require” fonksiyonunu kullanıyoruz. Mevcut “Tutorial.js” modül dosyasını genişleteceğimiz için, genişletmeden önce onu dahil etmemiz gerekiyor.
- Daha sonra “Nodetutorial” adında bir fonksiyon yaratıyoruz. Bu fonksiyon 2 şey yapacaktır,
- Konsola bir “Düğüm Eğitimi” dizesi gönderecektir.
- “Guru99 Tutorial” dizesini “Tutorial.js” temel modülünden genişletilmiş modülümüz “NodeTutorial.js”ye gönderecektir.
- Burada konsola “Node Tutorial”a string göndermek için ilk adımı gerçekleştiriyoruz.
- Bir sonraki adım, “Guru99 Eğitimi” dizesini console.log'a gönderecek olan Eğitim modülümüzden işlevi çağırmaktır.
) 3 Adım Ana uygulama dosyanız olan ana app.js dosyanızı oluşturun ve aşağıdaki kodu ekleyin.
var localTutor=require('./NodeTutorial.js'); localTutor.NodeTutorial(); localTutor.NodeTutorial.pTutor(); Or use this code var tut = new localTutor.NodeTutorial(); // Create and save object tut.pTutor(); // Call function on object
Yukarıdaki kod aşağıdaki işlemleri yapar;
- Ana uygulama dosyamız artık “NodeTutorial” modülünü çağırıyor.
- “NodeTutorial” fonksiyonunu çağırıyoruz. Bu işlevi çağırdığınızda, konsol günlüğünde "Düğüm Eğitimi" metni görüntülenecektir.
- Tutorial.js modülümüzü genişlettiğimizden ve pTutor adında bir işlevi kullanıma sunduğumuzdan beri. Ayrıca Tutorial.js modülündeki eğitim modülünü de çağırır ve konsolda "Guru99 Eğitimi" metni de görüntülenecektir.
Çıktı:
Yukarıdaki app.js kodunu Node kullanarak çalıştırdığımızdan, console.log dosyasında aşağıdaki çıktıyı alacağız
- Düğüm Eğitimi
- Guru99 Eğitimi
NPM (Düğüm Paketi Yöneticisi) Yayınlama Paketi
Kişi kendi modülünü kendi modülünde yayınlayabilir Github deposu.
Modülünüzü merkezi bir konuma yayınlayarak, onu gerektiren her makineye kendinizin kurulumunu yapmak zorunda kalmazsınız.
Bunun yerine npm'nin install komutunu kullanabilir ve yayınlanmış npm modülünüzü kurabilirsiniz.
Npm modülünüzü yayınlamak için aşağıdaki adımların izlenmesi gerekir
) 1 Adım Deponuzu GitHub'da (çevrimiçi kod deposu yönetim aracı) oluşturun. Kod depolarınızı barındırmak için kullanılabilir.
2. Adım) Yerel npm kurulumunuza kim olduğunuzu söylemeniz gerekir. Bu, npm'e bu modülün yazarının kim olduğunu, e-posta kimliğinin ne olduğunu ve bu kimlikle ilişkilendirilmesi gereken herhangi bir şirket URL'sinin hangisinin mevcut 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 ayarlar.
npm set init-author-name “Guru99.”
npm set init-author-email “guru99@gmail.com”
npm set init-author-url “http://Guru99.com”
) 3 Adım Bir 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
) 4 Adım 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 sizden bazı sorular sorulacaktır. Bunlardan en önemlisi modülünüzün sürüm numarasıdır.
) 5 Adım GitHub'da Yayınla – 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.1 git push origin master --tags
) 6 Adım Modülünüzü yayınlayın – Son bit, modülünüzü npm kayıt defterinde yayınlamaktır. Bu, aşağıdaki komut aracılığıyla yapılır.
npm publish
Üçüncü taraf paketlerini npm ile yönetme
Görüldüğü gibi “Node paket yöneticisi”, Node.js uygulamalarının ihtiyaç duyduğu 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, temel olarak bu modüllerin yerel bir makinedeki tüm Node.js projeleri için mevcut olacağı anlamına gelir. Aşağıdaki örnekte "ekspres modülün" global seçenekle nasıl kurulacağı gösterilmektedir.npm hızlı kurulum –global Yukarıdaki ifadedeki global seçenek, modüllerin global düzeyde kurulmasına izin veren şeydir.
- Yerel bir makineye kurulu tüm global paketlerin listelenmesi. Bu, komut isteminde aşağıdaki komutu çalıştırarak yapılabilir.npm listesi – globalSisteminizde daha önce “express modül” kurduysanız gösterilecek çıktı aşağıdadır. Burada yerel makineye 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 kurulması gereken ilgili sürümü öğrendikten sonra, söz konusu sürümü yüklemek için npm install komutunu kullanabilirsiniz. Aşağıdaki örnek, alt çizgi adı verilen modülün 1.7.0npm kurulumunun belirli bir sürümüyle nasıl kurulacağını gösterir. alt çizgi@1.7.0
- Paket sürümünün güncellenmesi – Bazen sistemde bir paketin daha eski bir sürümü olabilir ve piyasada bulunan en son sürüme güncellemek isteyebilirsiniz. Bunu yapmak için npm update komutunu kullanabilirsiniz. Aşağıdaki örnekte alt çizgi paketinin en son sürüme nasıl güncelleneceği gösterilmektedirnpm güncelleme alt çizgisi
- Belirli bir paketi arama – Belirli bir sürümün yerel sistemde mevcut olup olmadığını aramak için npm'nin search komutunu kullanabilirsiniz. Aşağıdaki örnek, express modülünün yerel makineye kurulu olup olmadığını kontrol edecektir.npm arama ekspresi
- Bir paketin kaldırılması – Bir paketi kurabildiğiniz gibi aynı zamanda bir paketi de kaldırabilirsiniz. Bir paketin kaldırılması, npm'nin kaldırma komutuyla yapılır. Aşağıdaki örnek express modülünün nasıl kaldırılacağını göstermektedirnpm express'i kaldır
package.json dosyası nedir
Paketi tutmak için “package.json” dosyası kullanılır. belirli bir projeyle ilgili meta veriler. Bu bilgi, Node paket yöneticisine projenin bağımlılıklarıyla 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ün 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 eklendiğinde express modülünün dosya içeriğini gösterir. Anlık görüntüden express klasöründeki package.json dosyasını görebilirsiniz.
package.json dosyasını açarsanız dosyanın içinde birçok bilgi göreceksiniz.
Aşağıda dosyanın bir kısmının anlık görüntüsü bulunmaktadır. ekspres@~4.13.1 Kullanılan ekspres modülün sürüm numarasını belirtir.
ÖZET
- Node.js'deki bir modül, kodun tek bir birimde mantıksal olarak kapsüllenmesidir. Modüllere ayırma, kodu gelecekteki amaçlar için daha yönetilebilir ve bakımı kolay hale getirir
- Piyasada Node.js içerisinde kullanılabilecek express, alt çizgi, gibi birçok modül bulunmaktadır. MongoDB, vb.
- Düğüm paketi yöneticisi (npm), daha sonra Node.js uygulamasında kullanılabilecek modülleri indirmek ve yüklemek için kullanılır.
- Özel NPM modülleri oluşturulabilir, bu modüller genişletilebilir ve ayrıca bu modüller yayınlanabilir.
- Node paket yöneticisi, yerel sistemdeki npm modüllerini yönetmek için kurulum, kaldırma, arama vb. gibi komutların tam setine sahiptir.
- package.json dosyası, bir npm modülüne ilişkin tüm meta veri bilgilerini tutmak için kullanılır.