Node.js "EADDRINUSE" Hatası ve Çözümü: Sunucunuzun Meşgul Olduğunu Anlamak

Node.js üzerinde karşılaşılan "EADDRINUSE" hatasının ne olduğunu, nasıl çözüleceğini ve bu hata ile ilgili çözüm yollarını detaylı bir şekilde ele alan bir yazı.

BFS

Node.js üzerinde çalışırken bir gün karşınıza “EADDRINUSE” hatası çıkarsa şaşırmayın! Bu hata, genellikle "Address already in use" anlamına gelir ve Node.js uygulamanızın bir portu kullandığını fakat o portun başka bir işlem tarafından zaten işgal edildiğini belirtir. İlk başta biraz kafa karıştırıcı olabilir, ancak endişelenmeyin, bu sorun çözülmesi oldukça basit bir hata. Gelin, bu hatayı nasıl çözeceğimizi adım adım inceleyelim.

EADDRINUSE Hatası Nedir?


"EADDRINUSE" hatası, temel olarak iki işlemin aynı anda aynı portu kullanmaya çalışmasından kaynaklanır. Node.js uygulamanızda belirttiğiniz port numarasını, başka bir uygulama ya da önceden çalıştırdığınız bir başka Node.js servisi kullanıyordur. Sunucunuz bu portu kullanmaya çalıştığında, o portun zaten başka bir işlem tarafından işgal edildiğini öğrenir ve size bu hatayı verir.

Bu Hata ile Karşılaşmak Neden Zorlayıcı Olabilir?


Bazen bu hata, aynı port üzerinde çalışan eski bir uygulamanın hala arka planda aktif olmasından kaynaklanabilir. Hatta sunucuyu kapattığınızı düşündüğünüzde, arka planda bir işlem hala devam ediyor olabilir. Bu durumda hata almanız oldukça doğal olacaktır. Ama merak etmeyin, bu sorunu çözmek için birkaç farklı yol mevcut.

EADDRINUSE Hatasını Çözmek İçin Adımlar


İlk olarak, portun hangi işlem tarafından kullanıldığını bulmamız gerekiyor. Bunun için aşağıdaki komutları kullanabilirsiniz.

lsof -i :3000


Bu komut, port numarası 3000 olan işlemleri listeleyecektir. Çoğu zaman, Node.js uygulamanız bu portu kullanmaya çalışıyor olabilir. Çıktıyı gördüğünüzde, işlem numarasını (PID) göreceksiniz. Bu işlem numarasını kullanarak, o işlemi sonlandırabilirsiniz.

kill -9 PID


Buradaki PID'yi, önceki komutla öğrendiğiniz işlem numarasıyla değiştirin. Bu işlem, ilgili süreci sonlandırarak portu serbest bırakacaktır.

Alternatif Çözüm: Farklı Bir Port Kullanmak


Eğer başka bir çözüm arıyorsanız, Node.js uygulamanızda portu değiştirmek de iyi bir alternatif olabilir. Port numarasını değiştirmek oldukça basit ve hızlı bir çözüm sağlar.

Örneğin, uygulamanızda şu şekilde bir port tanımlaması varsa:

app.listen(3000, () => {
  console.log('Sunucu 3000 portunda çalışıyor');
});


Portu değiştirmek için sadece 3000 sayısını başka bir numarayla değiştirebilirsiniz. Örneğin:

app.listen(4000, () => {
  console.log('Sunucu 4000 portunda çalışıyor');
});


Böylece başka bir portu kullanarak uygulamanızı sorunsuzca çalıştırabilirsiniz.

Portu Serbest Bırakmak İçin Uygulama Kapatma


Eğer uygulamanız üzerinde çalıştığınız portu serbest bırakmak istiyorsanız, Node.js uygulamanızı düzgün bir şekilde kapattığınızdan emin olmalısınız. Bazı durumlarda, sunucuyu kapatmak yeterli olmayabilir. Örneğin, `Ctrl + C` ile terminalde sunucuyu kapattığınızda, bu bazen arka planda hala aktif kalmasına neden olabilir. Bu tür durumlarda, yukarıda bahsettiğimiz işlem sonlandırma komutlarıyla bu süreci kesin olarak bitirebilirsiniz.

Sonuç


Node.js’de "EADDRINUSE" hatası, bir portun zaten başka bir işlem tarafından kullanılması sonucu meydana gelir. Bu hatayı çözmek için, portu kullanan işlemi sonlandırabilir ya da farklı bir port numarası seçebilirsiniz. Hem bu çözüm yolları oldukça basit hem de çok yaygın olarak karşılaşılan bir hata olduğundan, geliştirme sürecinde oldukça yardımcı olacaktır. Artık bu hatayla karşılaşırsanız, adım adım ne yapmanız gerektiğini biliyorsunuz!

İlgili Yazılar

Benzer konularda diğer yazılarımız

Modern Yazılım Geliştirme Süreçlerinde Yapay Zeka ve Otomasyonun Rolü: 2025’te Yeni Başlangıçlar

Yazılım geliştirme dünyası hızla evriliyor. 2025 yılına adım attığımızda, bu süreçte yapay zeka ve otomasyonun rolü hiç olmadığı kadar önemli hale geldi. Geçmişte yazılım geliştirme yalnızca kod yazmak ve sistemleri test etmekle sınırlıydı. Ancak bugünün...

Yazılım Geliştiriciler İçin Verimli Çalışma Alanı Oluşturmanın İpuçları: En İyi Araçlar ve Yöntemler

Verimli Bir Çalışma Alanı Neden Önemlidir?Yazılım geliştirici olmanın zorluklarından biri de sürekli odaklanmış ve üretken olabilmektir. Bir geliştirici olarak, işlerinizin çoğunu bilgisayar başında geçirirsiniz ve bu süre zarfında verimli bir çalışma...

ASP.NET Core 500 Internal Server Error: Sebepleri ve Çözümleri

Bir web geliştiricisi olarak, karşılaştığınız en zorlayıcı hatalardan biri şüphesiz "500 Internal Server Error"dır. Bu hata, web uygulamanızda her şeyin yolunda gittiğini düşündüğünüz bir anda karşınıza çıkabilir ve tüm projeyi durdurabilir. Ancak merak...