Node.js
Birleştirme
process.argv ile çalışan bir CLI uygulaması yazarsın.
Birleştirme: process.argv CLI
Son derste tüm parçaları birleştirip komut satırından çalışan bir uygulama yapacaksın. process.argv dizisi, komut satırından verilen argümanları taşır.
Node.js'te process.argv üç bölümden oluşur: argv[0] Node yoludur, argv[1] çalıştırılan dosyanın yoludur, argv[2] ve sonrası ise kullanıcının verdiği argümanlardır. Yani ilk komut process.argv[2]'de bulunur.
Örnek: node todo.js list çağrısında process.argv[2] 'list' değerini alır. node todo.js add Domates çağrısında ise argv[2] 'add', argv[3] 'Domates''tir. Bu argümanları okuyarak uygulamanın davranışını yönetirsin.
Komut işleme
Bir CLI uygulaması, kullanıcının verdiği komutu okur ve buna göre davranır. Temel desen şöyledir: const command = process.argv[2]; ile komutu al, sonra if (command === 'list') gibi koşullarla dallan.
Bu projede üç komut desteklenecek: list görevleri listeler, add yeni görev ekler, done bir görevi tamamlar. Komut yoksa varsayılan olarak listeleme yapılır.
Örnek: if (command === 'add') { addTask(tasks, process.argv[3]); }. Bu, node todo.js add Domates çağrısında 'Domates' başlıklı yeni bir görev ekler. Her komut kendi dalında işlenir.
Uygulama Tam CLI uygulaması
Başlangıç kodunda addTask, listTasks ve completeTask fonksiyonları verildi. Üç görev ekle ('Ekmek al', 'Süt al', 'Yumurta al'). process.argv[2]'den komutu oku. listTasks(tasks) ile görevleri her zaman yazdır.
Örnek çözümü göster
function addTask(tasks, title) {
tasks.push({ title, done: false });
}
function listTasks(tasks) {
tasks.forEach((t, i) => console.log((t.done ? '[x] ' : '[ ] ') + t.title));
}
function completeTask(tasks, index) {
if (index < tasks.length) {
tasks[index].done = true;
}
}
const tasks = [];
addTask(tasks, 'Ekmek al');
addTask(tasks, 'Süt al');
addTask(tasks, 'Yumurta al');
const command = process.argv[2];
listTasks(tasks);
Kendini test et
-
process.argv[2] ne içerir?
- Dosya yolunu
- Node yolunu
- Kullanıcının ilk komutunu
- Görev listesini
Cevabı göster
Kullanıcının ilk komutunu — argv[0] Node, argv[1] dosya, argv[2] kullanıcının ilk komutudur.
-
CLI parçalarını eşle
- process.argv
- Argüman dizisi
- argv[0]
- Node yolu
- argv[1]
- Dosya yolu
- argv[2]
- Kullanıcının ilk komutu
-
Komutu oku
const command = process.argv[____];
Cevabı göster
const command = process.argv[2];
Sıradaki ders: Promise nedir?