Node.js Yargs Modülü Kullanımı

Node.js Yargs Modülü Kullanımı

Hepinize merhaba dostlarım :). Bu yazımda sizlere node.js programlama dilinde kullanılan modüllerden birisi olan yargs modülünden bahsedeceğim. Özellikle veri girişi vb gibi kullanıcıdan veri alınıp bunların işlenmesinde önemli rol oynayan yargs modülüne yavaştan giriş yapalım ve tanımlamalardan sonra bir örnek yapalım diyorum :). Kemerlerinizi bağlamışsanız uçuşa geçebiliriz :)

Öncelikle proje geliştireceğiniz bir klasör seçiniz ve onu npm ile ilişkilendirinir (projeyi npm ile ilişkilendirme yazımı okumayan dostlarım buradan ulaşabilir)

Proje klasörünüzü npm ile ilişkilendirdikten sonra gelelim yargs modülünü yüklemeye

npm install --save yargs@3.15.0

komutunu yazalım ve enter tuşuna basalım :). Bu aşamada bizim package.json kısmına dependencies altına modülümüzün yüklendiğini göreceksiniz. Bu dependencies altına eklenmesinin sebebi ise biz projemizi başka geliştiriciler ile paylaştığımızda onların npm start komutunu verdiğinde modüllerin projeye hızlıca kurulmasını ve çalıştırılmasını sağlamak demektir :). Artık yargs modülünü de yüklediğimize göre gelelim artık kodlamaya

Örnek bir dosya açalım dostlarım ve buna da example-yargs.js ismini verelim. Daha sonra da yargs modülünü bu dosyamıza entegre işlemine başlayalım

const argv = require('yargs').argv

şeklinde komutumuzu yazdık. Artık bu sayfada argv değişkeni ile yargs modülümüzü rahatlıkla kullanabiliriz :). Aklınızda bir soru var ki bu projeye başlarken hemenn hemen hepimizin aklına gelen bir sorudur: "Tamam tanımladık değişkenimizi de bunu nasıl kullanacağız ?"

Çok güzel bir soru. Yavaş yavaş o kısma geleceğiz. Ama öncelikle bir komut daha yazmamız lazım

console.log(argv)

komutunu yazdık. Burada da diyoruz ki kullanıcıdan gelen verilerin hepsini al diyoruz :). Ve biz projemizin olduğu dizine gelip

node exampple-yargs.js

komutunu yazdığımızda bize aşağıdaki gibi bir sonuç dönecektir:

{
  _: [],
  help: false,
  '$0': 'C:\\Program Files\\nodejs\\node.exe C:\\Users\\mfati\\OneDrive\\Masaüstü\\egitim-node-js\\example-yargs.js'
}

şeklinde bir sonuç verecektir. Geri dönen objenin _ değerinde bize boş bir dizi döndürülüyor. Çünkü herhangi bir veri göndermedik. Gelelim örnek olarak MFSoftware ve Blog isminde iki adet değişken gönderelim. Gelelim terminale tekrardan

node example-yargs.js MFSoftware Blog

şeklinde iki adet değer gönderdik. Gelelim terminalde bize dönen sonuca

{
  _: [ 'MFSoftware', 'Blog' ],
  help: false,
  '$0': 'C:\\Program Files\\nodejs\\node.exe C:\\Users\\mfati\\OneDrive\\Masaüstü\\egitim-node-js\\example-yargs.js'
}

Eveeeet :). Karşımıza bu şekilde bir sonuç çıkıyor :). Şimdi aklımıza bir soru daha geliyor

Biz bütün değişkenlerimizi obje içerisindeki _ dizisinden tek tek indexleri 0 1 2 diye mi yapacağız ? Ya dizide birden fazla eleman varsa ?

Çok güzel bir soruya değindiniz dostlarım :). Ve cevabım tabii ki hayır bunun da kolay bir yolu var :). Normalde bize geri dönen obje içerisinde _ dizisi bizim komutlarımızın adını tutmada işimize yarar. Diğer parametreleri eklemek için ise örneğin "--name" şeklinde tanımlarız :). Gelelim bir örnek yapıp bunu inceleyelim. Örneğimiz ise bir komut ismi ve bir değer olsun bunları yargs komutuna aktaralım. Terminali açalım ve

node example-yargs.js islem --name "MFSoftware Blog"

komutumuzu yazalım. Enter tuşuna bastığımız anda bize aşağıdaki gibi bir sonuç çıktısı verecektir

{
  _: [ 'islem' ],
  help: false,
  name: 'MFSoftware Blog',
  '$0': 'C:\\Program Files\\nodejs\\node.exe C:\\Users\\mfati\\OneDrive\\Masaüstü\\egitim-node-js\\example-yargs.js'
}

şeklinde bize geri bir değer dönecektir :). Burada _ ile belirtilen dizi bizim komutumuzun ismidir, name ise bizim gönderdiğimiz değerdir dostlarım :). Buraya kadar sorun yoksa dostlarım gelelim artık öğrendiklerimizi pratiğe dökmeye :). Uygulamamız 4 işlem uygulaması olsun ve komut isimlerine göre analiz yapsın. 2 adet de sayı değişkeni alalım ve işlemleri yaptırıp sonucu ekrana bastıralım :)

const argv = require('yargs').argv  // modülü sayfaya dahil edelim
var command = argv._[0] // komutumuzun adını aldık


// toplama işlemi
function topla(sayi1,sayi2){
    console.log("Sayı 1: "+sayi1)
    console.log("Sayı 2: "+sayi2)
    console.log("Sonuç: "+sayi1+sayi2);
}

// çıkarma işlemi
function cikar(sayi1,sayi2){
    console.log("Sayı 1: "+sayi1)
    console.log("Sayı 2: "+sayi2)
    console.log("Sonuç: "+sayi1-sayi2);
}

// çarpma işlemi
function carp(sayi1,sayi2){
    console.log("Sayı 1: "+sayi1)
    console.log("Sayı 2: "+sayi2)
    console.log("Sonuç: "+sayi1*sayi2);
}

// bölme işlemi
function bol(sayi1,sayi2){
    if (sayi2==0){
        console.log("Bölen 0 Olamaz");
    }else{
        console.log("Sayı 1: "+sayi1)
        console.log("Sayı 2: "+sayi2)
        console.log("Sonuç: "+sayi1/sayi2);
    }
}

if(command === "toplama"){              // sayı 1 ve sayı 2 varsa
    if (typeof argv.sayi_1 !== "undefined" && typeof argv.sayi_2 !== "undefined"){
        topla(argv.sayi_1,argv.sayi_2)
    }
}else if(command === "cikarma"){        // sayı 1 ve sayı 2 varsa
    if (typeof argv.sayi_1 !== "undefined" && typeof argv.sayi_2 !== "undefined"){
        cikar(argv.sayi_1,argv.sayi_2)
    }
}else if(command === "carpma"){         // sayı 1 ve sayı 2 varsa
    if (typeof argv.sayi_1 !== "undefined" && typeof argv.sayi_2 !== "undefined"){
        carp(argv.sayi_1,argv.sayi_2)
    }
}else if (command==="bolme"){           // sayı 1 ve sayı 2 varsa
    if (typeof argv.sayi_1 !== "undefined" && typeof argv.sayi_2 !== "undefined"){
        bol(argv.sayi_1,argv.sayi_2)
    }
}else{
    console.log("Komut Bulunamadı");
}

şeklinde kodlarımızı yazdık dostlarım. Örnek olarak çarpma işlemi yaptıralım :). Gelelim terminale ve aşağıdaki komutumuzu yazalım

node example-yargs.js carpma --sayi_1 3 --sayi_2 5

komutumuzu yazdığımızda işlemler aşağıdaki gibi gerçekleşecektir

  1. carpma isimli komutumuzla çalışacağımızı ve sayi_1 değişkenimize 3, sayi_2 değişkenimize 5 değerini aktardık.
  2. if else komutları içerisinde carpma komutumuzun varlığını kontrol ettirdik
  3. belirtilen komutumuz if else komutları içerisinde bulunmuşsa içerisinde bu değerlerin cidden gelip gelmediğinin kontrolünü yapıyor (typeof argv.sayi_1  ve typeof argv.sayi_2 işlemleri)
  4. Daha sonra carp isimli fonksiyona değerimizi gelen 2 değerimizi gönderiyor
  5. Daha sonra carp fonksiyonu içerisinde gelen iki değeri ve işlem sonucunu console.log() ile ekrana yazdırıyor

adımları incelediğimize ve komutu yazdığımıza göre ekranımıza aşağıdaki gibi bir sonuç gelecektir

Sayı 1: 3
Sayı 2: 5
Sonuç: 15

şeklinde bir sonuç ekranımıza bastırılacaktır :). İşlemler bu kadar ve tamamen basit :)


Evet dostlarım :). Bu yazımda sizlere node js üzerinde yargs modülünün kullanımından ve ufak bir örnek yaparak bu modülü sizlerin pekiştirmesi için dilim döndüğünce anlatmaya çalıştım. Umarım faydalı olmuşumdur. Başlarda biraz karmaşık veya zor gelmiş olabilir anlıyorum. Bu aşamada sizlere yazılarımın sonunda dediğim gibi "İstikrarlı ve Azimli Çalışmak ve Bolca Pratik Yapmak :)". Bu dediğimi hayat felsefeniz yaptığınız taktirde başarı sizler için kaçınılmaz olacaktır :)

Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim :) 

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıWeb Site Güvenliği İçin Alınması Gereken Önlemler
Sonraki YazıJavascript Callback Fonksiyon Kullanımı
Yorumlar (0)
Bu Yazıya Ait Hiçbir Yorum Bulunamadı (veya admin onaylamadı). İlk Yorum Yapan Sen Ol
Yorum Yapabilirsiniz