Node.js kullanarak CLI (Command Line Interface) araçları oluşturmak, geliştiricilerin iş akışlarını otomatikleştirmeleri ve belirli görevleri hızlı bir şekilde gerçekleştirmeleri için oldukça kullanışlıdır. Bu makalede, Node.js kullanarak etkileşimli bir CLI aracının nasıl oluşturulacağını adım adım öğreneceğiz. Amacımız, kullanıcı dostu bir CLI aracı geliştirerek kullanıcıların komut satırında manuel giriş yapmalarını ve hatırlamalarını gerektiren süreçleri basitleştirmektir.
CLI, yani Komut Satırı Arayüzü, terminal veya komut satırında çalıştırılan programlardır. Kullanıcı, belirli komutlar ve seçenekler girerek programı çalıştırabilir. CLI araçları genellikle hızlı ve etkilidir, çünkü grafiksel kullanıcı arayüzleri (GUI) kullanmaya gerek kalmadan doğrudan komutlarla etkileşime girerler.
Temel bir CLI aracı, kullanıcıdan belirli seçenekler alarak çalışır. Örneğin, bir kullanıcı veritabanı uygulaması düşünelim. Kullanıcı, belirli bir kullanıcı kimliği girerek o kullanıcının bilgilerini almak isteyebilir. Normalde bu, şu şekilde çalışır:
node app.js --userId 1
Bu yaklaşım, kullanıcıların doğru seçenekleri ve formatı bilmesini gerektirir. Bunu daha kullanıcı dostu hale getirmek için CLI aracımızı etkileşimli hale getirebiliriz. Böylece, kullanıcı komutu çalıştırdıktan sonra program ona hangi bilgileri girmesi gerektiğini sorar.
Node.js ile etkileşimli CLI araçları geliştirmek için çeşitli npm paketleri mevcuttur. Bu örnekte, popüler bir paket olan Inquirer'ı kullanacağız. Inquirer, kullanıcıdan giriş almak için etkileşimli komut satırı soruları sunar.
Öncelikle, Inquirer paketini projemize eklememiz gerekiyor. Terminalde aşağıdaki komutu çalıştırarak Inquirer paketini kurabiliriz:
npm install Inquirer@8.2.5
Versiyon 9 sadece ES modüllerle çalıştığı için, CommonJS modül formatını da destekleyen versiyon 8.2.5'i kullanıyoruz.
index.js
dosyamızın başında Inquirer paketini içe aktarıyoruz:
const Inquirer = require('Inquirer');
Etkileşimli CLI aracımızda, kullanıcıdan bir kullanıcı kimliği alacağız ve bu kimliği kullanarak bir API'dan kullanıcı bilgilerini çekeceğiz. API çağrıları için node-fetch
paketini kullanacağız. Terminalde npm install node-fetch
komutunu çalıştırarak node-fetch
paketini kuruyoruz.
const fetch = require('node-fetch');
const printUserInfo = async (userId) => {
const response = await fetch(`https://jsonplaceholder.typicode.com/users/${userId}`);
const userData = await response.json();
const userInfo = {
name: userData.name,
username: userData.username,
email: userData.email,
phone: userData.phone,
website: userData.website
};
console.log(userInfo);
};
const prompt = Inquirer.createPromptModule();
prompt([{
type: 'input',
name: 'userId',
message: 'Enter a user ID to view their information:',
}]).then(answers => {
const userId = answers.userId;
printUserInfo(userId);
});
Bu kod parçası, kullanıcıdan bir kullanıcı kimliği girmesini isteyen bir soru oluşturur ve kullanıcının cevabını işleyerek printUserInfo
fonksiyonuna geçirir. printUserInfo
fonksiyonu, verilen kimlik ile bir API çağrısı yapar ve kullanıcı bilgilerini konsola yazdırır.
Etkileşimli CLI aracımızı çalıştırmak için terminalde şu komutu kullanabiliriz:
node index.js
Bu komut, CLI aracını başlatır ve kullanıcıdan bir kullanıcı kimliği girmesini isteyen bir soru görüntüler. Kullanıcı bir kimlik girdiğinde, ilgili kullanıcı bilgileri API'dan alınarak terminalde listelenir.
CLI araçları, geliştiricilerin ve sistem yöneticilerinin günlük iş akışlarını otomatikleştirmeleri için güçlü araçlardır. Etkileşimli CLI araçları, kullanıcı deneyimini iyileştirerek kullanım kolaylığı sağlar. İşte CLI araçları geliştirirken dikkate almanız gereken bazı ipuçları:
Modülerlik: CLI aracınızı modüler bir yapıda tasarlayın. Bu, kodunuzu daha okunabilir ve sürdürülebilir hale getirir.
Kullanıcı Dostu Sorular: Kullanıcıdan alınacak girdileri net ve anlaşılır şekilde tasarlayın. Kullanıcının ne yapması gerektiğini anlaması kolay olmalıdır.
Hata Yönetimi: Kullanıcının yanlış giriş yapması durumunda uygun hata mesajları gösterin ve tekrar giriş yapmasına olanak tanıyın.
Dokümantasyon: CLI aracınızın nasıl kullanılacağına dair kapsamlı bir dokümantasyon sağlayın. Bu, kullanıcıların aracı daha etkili bir şekilde kullanmasını sağlar.
Bu makalede, Node.js kullanarak etkileşimli bir CLI aracının nasıl oluşturulacağını öğrendik. Inquirer paketi ile kullanıcıdan giriş almayı ve bu girdiyi işleyerek belirli işlemler yapmayı gördük. Ayrıca, node-fetch
paketi ile API çağrıları yaparak dinamik veriler çekmeyi öğrendik. CLI araçları, geliştiricilerin ve kullanıcıların iş akışlarını otomatikleştirmeleri ve belirli görevleri daha hızlı gerçekleştirmeleri için çok faydalıdır. Node.js ve npm kullanarak daha gelişmiş CLI araçları geliştirmeyi keşfetmenizi öneririm. Bu süreçte, modülerlik, kullanıcı dostu tasarım ve iyi dokümantasyonun önemini unutmayın.