Child process
- Node.js kursu
- Orta seviye
- Ders 63/116
- 5 dk
child_process.exec ile alt süreç çalıştırmayı öğrenirsin.
child_process.exec
child_process.exec bir kabuk komutunu alt süreç olarak çalıştırır. Komutun çıktısını bir callback ile alırsın. Bu, Node.js içinden sistem komutları çalıştırmak için kullanılır.
Örneğin exec("echo merhaba", (err, stdout, stderr) => { console.log(stdout); }) ile echo komutunu çalıştırıp çıktısını yazdırırsın. Callback üç parametre alır: err hata, stdout normal çıktı, stderr hata çıktısı. Komut tamamlanınca callback çağrılır. Büyük çıktılar için spawn daha uygundur; ama kısa komutlarda exec daha basittir.
exec callback'i
exec'in callback'i üç parametre alır: (err, stdout, stderr). Komut başarıyla çalışırsa err null olur; stdout çıktıyı, stderr hata iletilerini içerir.
Çıktı genellikle sonunda yeni satır karakteri taşır; bu yüzden stdout.trim() ile temizlemek yaygındır. Örneğin exec("node --version", (err, stdout) => console.log(stdout.trim())) Node.js sürümünü yazdırır. Komut bulunamazsa veya sıfırdan farklı çıkış kodu verirse err dolu gelir. Bu yüzden callback'in başında if (err) kontrolü yapmak iyi bir alışkanlıktır.
Uygulama echo komutunu çalıştır ve çıktıyı yazdır
child_process modülünden exec'i içe aktar. exec("echo merhaba", cb) ile komutu çalıştır. Callback içinde stdout.trim()'i console.log ile yazdır.
Başlangıç kodu
// child_process'i içe aktar
// exec ile "echo merhaba" çalıştır
// callback'te stdout'ı yazdır
// buraya yazÖrnek çözüm
const { exec } = require("child_process");
exec("echo merhaba", (err, stdout) => {
console.log(stdout.trim());
});Beklenen çıktı
merhaba
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 child_process'i içe aktar
const { exec } = require("____");
const { exec } = require("child_process");
Açıklama: child_process modülünden exec içe aktarılır.
2 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
exec |
Komut çalıştırır |
stdout |
Çıktı akışı |
stderr |
Hata akışı |
callback |
Sonucu işler |
3 exec callback'inde ikinci parametre ne içerir?
(err, stdout, stderr)- Çıkış kodu
- Hata nesnesi
- stdout çıktısı Doğru cevap
- PID numarası
Açıklama: İkinci parametre stdout, komutun normal çıktısıdır.