Node.js'de ilk uygulamanızı nasıl yazar ve çalıştırırsınız?

0 Hisse senetleri
0
0
0
0

giriiş

Node.js, Google Chrome web tarayıcısında JavaScript çalıştırmak için kullanılan V8 JavaScript motorunu kullanarak tarayıcı dışında JavaScript çalıştırabilen popüler bir açık kaynaklı çalışma zamanı ortamıdır. Node Çalışma Zamanı, genellikle komut satırı araçları ve web sunucuları oluşturmak için kullanılır.

Node.js öğrenmek, ön uç ve arka uç kodunuzu aynı dilde yazmanıza olanak tanır. JavaScript'i yığın genelinde kullanmak, bağlam değiştirme süresini azaltmaya yardımcı olabilir ve kütüphaneler, arka uç sunucunuz ve ön uç projeleriniz arasında daha kolay paylaşılır.

Ayrıca, eşzamansız yürütme desteği sayesinde Node.js, G/Ç yoğun görevlerde mükemmel performans gösterir ve bu da onu web için ideal hale getirir. Video akışı veya sürekli veri gönderip alan uygulamalar gibi gerçek zamanlı uygulamalar, Node.js ile yazıldığında daha verimli çalışabilir.

Bu eğitimde, Node.js çalışma zamanını kullanarak ilk uygulamanızı oluşturacaksınız. Bazı özel Node kavramlarını öğrenecek ve kullanıcıların sistem ortam değişkenlerini kontrol etmelerine yardımcı olacak bir uygulama oluşturma yolunda ilerleyeceksiniz. Bunu yapmak için, dizeleri konsola nasıl çıktı olarak göndereceğinizi, kullanıcıdan girdi alacağınızı ve ortam değişkenlerine nasıl erişeceğinizi öğreneceksiniz.

Ön koşullar

Bu eğitimi tamamlamak için şunlara ihtiyacınız olacak:

  • Node.js, geliştirme makinenize yüklüdür. Bu eğitimde Node.js 10.16.0 sürümü kullanılmaktadır. MacOS veya Ubuntu 18.04'e yüklemek için, "Node.js'yi macOS'e nasıl yüklerim ve yerel bir geliştirme ortamı oluştururum?" bölümündeki adımları veya "Node.js'yi Ubuntu 18.04'e nasıl yüklerim?" bölümündeki "PPA kullanarak yükleme" adımlarını izleyin.
  • Temel JavaScript bilgisini burada bulabilirsiniz: JavaScript'te kodlama nasıl yapılır.

Adım 1 – Konsola çıktı

"Merhaba dünya!" programını yazmak için nano gibi bir komut satırı metin düzenleyicisi açın ve yeni bir dosya oluşturun:

nano hello.js

Metin düzenleyici açıldığında aşağıdaki kodu girin:

console.log("Hello World");

Node.js'deki konsol nesnesi, stdout, stderr veya diğer herhangi bir Node.js akışına (çoğu durumda komut satırıdır) yazmak için basit yöntemler sağlar. Log yöntemi, stdout akışına yazdırır, böylece konsolunuzda görebilirsiniz.

Node.js bağlamında akışlar, stdout akışı gibi veri alabilen nesneler veya ağ soketi ya da dosya gibi veri çıkışı verebilen nesnelerdir. stdout ve stderr akışlarında, bunlara gönderilen tüm veriler konsolda görüntülenir. Akışlarla ilgili önemli noktalardan biri, kolayca yönlendirilebilmeleridir; örneğin, programınızın çıktısını bir dosyaya yönlendirebilirsiniz.

CTRL+X tuşlarına basarak nano'yu kaydedin ve çıkın, dosyayı kaydetmeniz istendiğinde Y tuşuna basın. Artık programınız çalışmaya hazır.

Adım 2 – Programı çalıştırın

Bu programı çalıştırmak için node komutunu aşağıdaki gibi kullanın:

node hello.js

hello.js programı çalışır ve aşağıdaki çıktıyı görüntüler:

Output
Hello World

Node.js yorumlayıcısı dosyayı okudu ve global konsol nesnesinin log metodunu çağırarak console.log ("Merhaba Dünya") dosyasını çalıştırdı. "Merhaba Dünya" dizesi, log fonksiyonuna argüman olarak aktarıldı.

Kodda metnin bir dize olduğunu belirtmek için tırnak işaretleri gerekli olsa da, bunlar ekrana basılmıyor.

Programın çalıştığını doğruladıktan sonra, onu daha interaktif hale getirelim.

Adım 3 – Komut satırı argümanları aracılığıyla kullanıcı girdisi alma

Node.js'i her çalıştırdığınızda "Merhaba Dünya!" programı aynı çıktıyı üretir. Programı daha dinamik hale getirmek için, kullanıcıdan girdi alıp ekranda gösterelim.

Komut satırı araçları genellikle davranışlarını değiştiren çeşitli argümanları kabul eder. Örneğin, node'u –version argümanıyla çalıştırmak, yorumlayıcıyı çalıştırmak yerine yüklü sürümü yazdırır. Bu noktada, kodunuzu komut satırı argümanlarıyla kabul etmiş olursunuz.

nano ile yeni bir arguments.js dosyası oluşturun:

nano arguments.js

Aşağıdaki kodu girin:

console.log(process.argv);

İşlem nesnesi, çalışan Node.js işlemiyle ilgili tüm işlevleri ve verileri içeren genel bir Node.js nesnesidir. argv özelliği, bir programa verilen tüm komut satırı argümanlarını içeren bir dize dizisidir.

CTRL+X tuşlarına basarak nano'yu kaydedin ve çıkın, dosyayı kaydetmek için sorulduğunda Y tuşuna basın.

Şimdi bu programı çalıştırdığınızda, şu şekilde bir komut satırı argümanı sağlarsınız:

node arguments.js hello world

Çıktı şu şekildedir:

Output
[ '/usr/bin/node',
'/home/sammy/first-program/arguments.js',
'hello',
'world' ]

process.argv dizisindeki ilk argüman her zaman programı çalıştıran Node.js ikili dosyasının konumudur. İkinci argüman her zaman çalıştırılan dosyanın konumudur. Kalan argümanlar, kullanıcının girdiği her şeydir; bu durumda: merhaba dünya.

Node.js'nin sağladığı varsayılan argümanlardan ziyade, kullanıcının girdiği argümanlarla daha çok ilgileniyoruz. Düzenlemek için arguments.js dosyasını açın:

nano arguments.js

console.log(process.arg); ifadesini aşağıdaki şekilde değiştirin:

console.log(process.argv.slice(2));

argv bir dizi olduğundan, JavaScript'in yerleşik dilim metodunu kullanabilirsiniz. Bu metot, bir öğe koleksiyonu döndürür. Dilim fonksiyonunu 2 argümanıyla geçirdiğinizde, argv'nin ikinci öğesinden sonraki tüm öğelerini, yani kullanıcının girdiği tüm argümanları elde edersiniz.

Programı node komutu ve geçen seferkiyle aynı argümanlarla tekrar çalıştırın:

node arguments.js hello world

Şimdi çıktı şu şekilde:

Output
[ 'hello', 'world' ]

Artık kullanıcıdan girdi toplayabildiğimize göre, uygulama ortamından girdi toplayalım.

Adım 4 – Ortam Değişkenlerine Erişim

Ortam değişkenleri, bir uygulamanın dışında depolanan ve işletim sistemi tarafından sağlanan anahtar-değer verileridir. Genellikle sistem veya kullanıcı tarafından ayarlanırlar ve yapılandırma veya durum amaçları için çalışan tüm işlemler tarafından kullanılabilirler. Bunlara Node işlem nesnesini kullanarak erişebilirsiniz.

Yeni bir ortam dosyası oluşturmak için nano'yu kullanın.

nano environment.js

Aşağıdaki kodu ekleyin:

console.log(process.env);

env nesnesi, bir Node.js uygulaması çalışırken kullanılabilen tüm ortam değişkenlerini depolar.

Önceki gibi kaydedip çıkın ve environment.js dosyasını node komutuyla çalıştırın.

node environment.js

Programı çalıştırdıktan sonra aşağıdakine benzer bir çıktı görmelisiniz:

Output
{ SHELL: '/bin/bash',
SESSION_MANAGER:
'local/digitalocean:@/tmp/.ICE-unix/1003,unix/digitalocean:/tmp/.ICE-unix/1003',
COLORTERM: 'truecolor',
SSH_AUTH_SOCK: '/run/user/1000/keyring/ssh',
XMODIFIERS: '@im=ibus',
DESKTOP_SESSION: 'ubuntu',
SSH_AGENT_PID: '1150',
PWD: '/home/sammy/first-program',
LOGNAME: 'sammy',
GPG_AGENT_INFO: '/run/user/1000/gnupg/S.gpg-agent:0:1',
GJS_DEBUG_TOPICS: 'JS ERROR;JS LOG',
WINDOWPATH: '2',
HOME: '/home/sammy',
USERNAME: 'sammy',
IM_CONFIG_PHASE: '2',
LANG: 'en_US.UTF-8',
VTE_VERSION: '5601',
CLUTTER_IM_MODULE: 'xim',
GJS_DEBUG_OUTPUT: 'stderr',
LESSCLOSE: '/usr/bin/lesspipe %s %s',
TERM: 'xterm-256color',
LESSOPEN: '| /usr/bin/lesspipe %s',
USER: 'sammy',
DISPLAY: ':0',
SHLVL: '1',
PATH:
'/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin',
DBUS_SESSION_BUS_ADDRESS: 'unix:path=/run/user/1000/bus',
_: '/usr/bin/node',
OLDPWD: '/home/sammy' }

Gördüğünüz ortam değişkenlerinin çoğunun sistem yapılandırmanıza ve ayarlarınıza bağlı olduğunu ve çıktınızın burada gördüğünüzden önemli ölçüde farklı görünebileceğini unutmayın. Uzun bir ortam değişkenleri listesi görüntülemek yerine, belirli bir değişkeni almak isteyebilirsiniz.

Adım 5 – Belirli bir ortam değişkenine erişim

Bu adımda global process.env nesnesini kullanarak ortam değişkenlerini ve değerlerini görüntüleyecek ve değerlerini konsola yazdıracaksınız.

process.env nesnesi, ortam değişkeni adları ile dizeler olarak depolanan değerleri arasında basit bir eşlemedir. JavaScript'teki tüm nesneler gibi, bir özelliğe parantez içinde adına başvurarak erişirsiniz.

Düzenlemek için environment.js dosyasını açın:

nano environment.js

console.log(process.env);'yi şu şekilde değiştirin:

console.log(process.env["HOME"]);

Dosyayı kaydedin ve çıkın. Şimdi environment.js uygulamasını çalıştırın:

node environment.js

Çıktı şu şekilde görünüyor:

Output
/home/sammy

Tüm nesneyi yazdırmak yerine, artık process.env dosyasının yalnızca $HOME ortam değişkeninin değerini depolayan HOME özelliğini yazdırıyorsunuz.

Tekrar belirtelim, bu kodun çıktısı sisteminize özel olduğu için burada gördüğünüzden muhtemelen farklı olacaktır. Artık alınacak ortam değişkenini belirleyebileceğinize göre, kullanıcıdan görmek istediği değişkeni sorarak uygulamanızı geliştirebilirsiniz.

Adım 6 – Kullanıcı girdisine yanıt olarak bir argüman alın

Daha sonra, bir ortam değişkeninin değerini ekrana yazdıran bir komut satırı aracı oluşturmak için komut satırı argümanlarını ve ortam değişkenlerini okuma yeteneğini kullanacaksınız.

Yeni bir echo.js dosyası oluşturmak için nano'yu kullanın:

nano echo.js

Aşağıdaki kodu ekleyin:

const args = process.argv.slice(2);
console.log(process.env[args[0]]);

echo.js'nin ilk satırı, kullanıcının sağladığı tüm komut satırı argümanlarını args adlı sabit bir değişkende saklar. İkinci satır, args'ın ilk öğesinde saklanan ortam değişkenini, yani kullanıcının sağladığı ilk komut satırı argümanını yazdırır.

Nano'yu kaydedip çıkın, ardından programı aşağıdaki gibi çalıştırın:

node echo.js HOME

Şimdi çıktı şu şekilde olacaktır:

Output
/home/sammy

HOME argümanı args dizisinde saklanıyordu ve bu daha sonra process.env nesnesi aracılığıyla ortamdaki değerini bulmak için kullanılıyordu.

Bu noktada, sisteminizdeki herhangi bir ortam değişkeninin değerine erişebilirsiniz. Bunu doğrulamak için şu değişkenleri görüntüleyin: PWD, USER, PATH.

Tek tek değişkenleri almak güzeldir, ancak kullanıcının istediği değişken sayısını belirtmesine izin vermek daha iyidir.

Adım 7 – Birden Çok Ortam Değişkenini Görüntüleme

Program şu anda aynı anda yalnızca bir ortam değişkenini kontrol edebiliyor. Birden fazla komut satırı argümanını kabul edip, ortamdaki karşılık gelen değerleri alabilmek faydalı olurdu. echo.js dosyasını düzenlemek için nano kullanın:

nano echo.js

Dosyayı aşağıdaki kodu içerecek şekilde düzenleyin:

const args = process.argv.slice(2);
args.forEach(arg => {
console.log(process.env[arg]);
});

forEach yöntemi, tüm dizi nesneleri için standart bir JavaScript yöntemidir. Dizinin her bir öğesi üzerinde yineleme yaparken kullanılan bir geri çağırma işlevini kabul eder. forEach'i args dizisinde kullanır ve geçerli argümanın değerini ortama yazdıran bir geri çağırma işlevi sağlarsınız.

Dosyayı kaydedip çıkın. Şimdi programı iki argümanla tekrar çalıştırın:

node echo.js HOME PWD

Aşağıdaki çıktıyı göreceksiniz:

[secondary_label Output] 
/home/sammy
/home/sammy/first-program

forEach fonksiyonu, her komut satırı argümanının args dizisinde yazdırılmasını sağlar.

Artık kullanıcının istediği değişkenleri almanın bir yoluna sahipsiniz, ancak yine de kullanıcının hatalı veri girdiği durumlarla ilgilenmemiz gerekiyor.

Adım 8 – Belirtilmemiş Girişin İşlenmesi

Programa geçerli olmayan bir ortam değişkeni verdiğinizde ne olacağını görmek için aşağıdakileri çalıştırın:

node echo.js HOME PWD NOT_DEFINED

Çıktı aşağıdaki şekle benzer olacaktır:

[secondary_label Output] 
/home/sammy
/home/sammy/first-program
undefined

İlk iki satır beklendiği gibi yazdırılır ve son satır tanımsızdır. JavaScript'te tanımsız bir değer, bir değişkene veya özelliğe değer atanmadığı anlamına gelir. NOT_DEFINED geçerli bir ortam değişkeni olmadığı için tanımsız olarak gösterilir.

Kullanıcının komut satırı argümanı ortamda bulunamıyorsa, kullanıcının bir hata mesajı görmesi daha faydalı olacaktır.

Düzenleme için echo.js'yi açın:

nano echo.js

echo.js dosyasını aşağıdaki kodu içerecek şekilde düzenleyin:

const args = process.argv.slice(2);
args.forEach(arg => {
let envVar = process.env[arg];
if (envVar === undefined) {
console.error(`Could not find "${arg}" in environment`);
} else {
console.log(envVar);
}
});

Burada, forEach'e sağlanan geri çağırma işlevini aşağıdakileri yapacak şekilde değiştirdiniz:

  1. Ortamdaki komut satırı argümanlarının değerini alın ve bir env Var değişkeninde saklayın.
  2. envVar değerinin tanımsız olup olmadığını kontrol edin.
  3. envVar tanımlanmamışsa, bulunamadığını belirten yararlı bir mesaj yazdırırız.
  4. Ortam değişkeni bulunursa değerini yazdırıyoruz.

Şimdi aşağıdaki komutu bir kez daha çalıştırın:

node echo.js HOME PWD NOT_DEFINED

Bu sefer çıktı şu şekilde olacaktır:

[secondary_label Output] 
/home/sammy
/home/sammy/first-program
Could not find "NOT_DEFINED" in environment

Artık ortam değişkeni olmayan bir komut satırı argümanı sağladığınızda, bunu belirten net bir hata mesajı alacaksınız.

Sonuç

İlk programınız ekranda "Merhaba Dünya" mesajını gösterdi ve şimdi ortam değişkenlerini görüntülemek için kullanıcı argümanlarını okuyan bir Node.js komut satırı aracı yazdınız.

Bunu daha da ileri götürmek isterseniz, bu programın davranışını daha da değiştirebilirsiniz. Örneğin, yazdırmadan önce komut satırı argümanlarını doğrulamak isteyebilirsiniz. Bir argüman tanımsızsa, bir hata döndürebilirsiniz ve kullanıcı yalnızca tüm argümanlar geçerli ortam değişkenleriyse çıktı alır.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca Şunları da Beğenebilirsiniz