Node.js Hata Ayıklama için VS Code ekranındaki durma noktalarını, Chrome DevTools incelemesini ve terminal komutlarını karşılaştırın.
Bir API isteği sunucuyu aniden durduruyor, bazen de uygulama çalışmasına rağmen yanlış veri döndürüyor. Terminalde beliren uzun hata çıktısı, sorunun nerede başladığını her zaman açık etmiyor. Node.js Hata Ayıklama tam da bu noktada devreye giriyor. Rastgele satır değiştirmek yerine kodun hangi koşulda beklenmedik davrandığını bulmaya odaklanıyor.
Node.js, Chrome’da da kullanılan V8 motoruyla JavaScript kodunu tarayıcı dışında çalıştıran bir ortam. Node.js nedir ve Node.js ne işe yarar sorularını öğrendikten sonra işin daha zorlu kısmı başlıyor: Çalışan uygulamanın neden yanlış davrandığını anlamak. Bunun için pahalı yazılımlar şart değil. Doğru sırayla kullanılan birkaç araç çoğu sorunu görünür kılabiliyor.

Hata her zaman uygulama kodundan çıkmaz. Yerel sunucu yapılandırması da aynı derecede kafa karıştırabilir. Özellikle geliştirme ortamınızda sunucu kaynaklı bir sorunla karşılaşıyorsanız MAMP’de HTTP 500 Hatası Nasıl Düzeltilir içeriği, hangi noktaları kontrol etmeniz gerektiğini anlamanıza yardımcı olabilir.
Node.js Hata Ayıklama Nasıl Yapılır?
Node.js hata ayıklama, uygulamanın durduğu veya beklenmedik sonuç ürettiği noktayı belirlemek için hata kayıtlarını ve çalışma anındaki verileri inceleme işlemidir. İlk adım, sorunun sözdizimi, mantık ya da çalışma zamanı hatası olduğunu ayırt etmektir. Bazen sorun yalnızca eksik bir parantezden kaynaklanır. ESLint ve Node.js’in kontrol komutları bu tür hataları bulmanıza yardımcı olur. Kod çalışmasına rağmen beklediğiniz sonucu alamıyorsanız VS Code veya Chrome DevTools üzerinden işlemi durdurabilir, değişkenlerin o anki değerlerini ve hangi fonksiyonların çağrıldığını inceleyebilirsiniz.
Önce Hatanın Türünü Belirleyin
Eksik parantez veya yanlış yazılmış bir komut, sözdizimi hatasıdır. Kod daha çalışmadan editör tarafından işaretlenebilir. Mantık hatalarında ise uygulama çalışır fakat beklenen sonucu üretmez. Örneğin yanlış koşul nedeniyle çıkış yapmak isteyen kullanıcı oturumda kalabilir.
Çalışma zamanı hatası farklıdır. Kod belirli bir işlemi gerçekleştirirken sorun ortaya çıkar. Tanımsız bir değerin özelliğine erişmeye çalışmak ya da salt okunur dosyaya veri yazmak buna örnek olabilir.
Kodun hiç çalışmamasıyla çalıştığı hâlde yanlış sonuç vermesi birbirinden farklı problemlerdir. Hangisiyle karşı karşıya olduğunuzu anladığınızda sorunu nerede aramanız gerektiği de netleşir.
ESLint ve Terminal Komutlarıyla Hızlı Kontrol
Kodun yapısal sorunlarını bulmak için ESLint kullanabilirsiniz. Projesinde ESLint yapılandırması bulunanlar npx eslint app.js komutuyla dosyayı denetleyebilir. Sadece sözdizimini kontrol etmek istiyorsanız node --check app.js yeterlidir. Bu komut dosyayı çalıştırmadan kontrol eder.
Uyarıların hangi çağrılardan geldiğini görmek gerektiğinde node --trace-warnings app.js yardımcı olabilir. Kaynak haritası kullanılan projelerde --enable-source-maps seçeneği de hata konumlarını anlamayı kolaylaştırır. Ayrıca Express gibi bazı yapılarda NODE_ENV değerinin geliştirme ortamına ayarlanması, gösterilen hata ayrıntılarını değiştirebilir.

Console Yöntemleri Ne Zaman Yeterli?
Küçük bir işlevde sorun ararken console.log() çoğu zaman hızlı başlangıç sağlar. Ancak her yere aynı çıktıyı yerleştirmek, önemli ayrıntıları kalabalık içinde kaybettirir. Nesneleri okumak için console.dir(), veri dizilerini karşılaştırmak için console.table(), çağrı zincirini görmek için console.trace() kullanılabilir.
İşlem süresini merak ediyorsanız console.time() ve console.timeEnd() birlikte çalışır. Daha kapsamlı kayıt ihtiyacında Pino veya Winston gibi araçlar, mesajları seviyelerine göre düzenlemeye yardımcı olur. Node.js hata ayıklama yaparken konsolu uzun uzun mesajlarla doldurmanız gerekmez. Sorunun hangi işlemden sonra ortaya çıktığını ve o sırada verilerin nasıl değiştiğini görebilmek çok daha faydalıdır.
Chrome DevTools ile Kodun İçine Bakın
Uygulamayı node --inspect app.js komutuyla başlatın. Ardından Chrome adres satırına chrome://inspect yazıp ilgili Node.js sürecinin inspect bağlantısını açın. Sources panelinde şüpheli satıra tıklayarak durma noktası ekleyebilirsiniz.
Uygulama o satıra geldiğinde yürütme durur. Scope alanında değişken değerlerini, Call Stack bölümünde o noktaya hangi işlevlerden gelindiğini görürsünüz. İlk satırdan başlamak isterseniz node --inspect-brk app.js komutu kullanılabilir.
Koşullu Durma Noktası Neden İşe Yarar?
Sıfırdan başlayarak bin kez çalışan bir döngünün yalnızca son tekrarında sorun çıkıyorsa her adımı tek tek izlemek gereksizdir. Add conditional breakpoint seçeneğine i === 999 koşulunu girerek yalnızca ilgili tekrar sırasında durabilirsiniz. Add logpoint ise kodu değiştirmeden konsola belirlediğiniz değeri yazdırır.
VS Code ile Daha Düzenli Hata Ayıklama
Koddan ayrılmadan çalışmak isteyenler için VS Code pratik bir seçenek. Proje dosyanızı açtıktan sonra Run and Debug bölümünden Node.js işlemini başlatabilir, satır numarasının yanına tıklayarak durma noktası koyabilirsiniz. Değişkenler ve çağrı geçmişi editör içinde görüntülenir.

VS Code’da her proje için baştan launch.json oluşturmak gerekmez. Basit bir Node.js dosyasında yerleşik hata ayıklayıcı doğrudan kullanılabilir. Ancak nodemon ile otomatik yeniden başlatma veya uzak bir sürece bağlanma gerektiğinde .vscode/launch.json yapılandırması önem kazanır. Ekrandaki seçenek adları sürüme göre değişebilir.
Değişikliklerin etkisini izlemek için Git geçmişinden, tekrar eden sorunları yakalamak için testlerden de yararlanabilirsiniz. Node.js hata ayıklama tek seferlik bir müdahale değil, hatanın hangi değişiklikle ortaya çıktığını anlayabilme becerisidir.
Bazı aksaklıklar doğrudan uygulama kodundan değil, bilgisayar veya bağlantı kurulumundan kaynaklanabilir. Bu tür genel teknik sorunlarda 11858, 2011 yılından bu yana Türkiye genelinde milyonlarca kullanıcıya sunduğu 7/24 profesyonel destek hizmetiyle başvurulabilecek seçeneklerden biri. Hizmet, lisanslı TeamViewer ve AnyDesk üzerinden uzaktan bağlantı ve şeffaf, dakika bazlı ücretlendirme sunuyor. Paylaştığı bilgilere göre 500.000’den fazla başarılı işlem ve yüzde 95 memnuniyet oranına sahip.
Bir API çağrısı beklediğiniz gibi sonuçlanmadığında ekrandaki hata mesajıyla yetinmeyin. Sunucudan dönen HTTP kodu, aksaklığın hangi aşamada ortaya çıktığını anlamanız için önemli ipuçları verebilir. Özellikle sunucuya ulaşan ancak işlenemeyen bir istekle karşılaşıyorsanız HTTP 422 Hatası Çözümü: İsteğiniz Neden İşlenmiyor ve Nasıl Düzeltilir içeriği sorunun kapsamını daraltmanıza yardımcı olabilir.
Node.js hata ayıklama konusunda asıl farkı yaratan, ilk gördüğünüz hata mesajına değil, o hatayı oluşturan koşullara bakmaktır. Siz en çok hangi araçla sorunun kaynağına ulaşıyorsunuz? Yorumlarda deneyiminizi paylaşın.