Node.js "EADDRINUSE" Hatası ve Çözümü: Port Çakışmalarına Son!

Node.js üzerinde karşılaşılan "EADDRINUSE" hatası ve bu hatayı çözmek için izlenmesi gereken adımlar. Port çakışmalarını nasıl çözebileceğinizi detaylı bir şekilde anlatıyoruz.

BFS

Günlerden bir gün, Node.js ile geliştirdiğin uygulamanın üzerinde çalışırken, her şeyin mükemmel gittiğini düşündüğün bir anda karşına bir hata çıkabilir: EADDRINUSE. Hata mesajı seni biraz şaşırtabilir çünkü her şey yolunda gibi görünüyordur. Ama bir bakıyorsun, terminalde “Address already in use” yazıyor. Ne oldu şimdi? Neden port numarası başka bir yerde kullanılıyor? Hadi gel, bu hatayı çözmenin yollarını birlikte keşfedelim!

EADDRINUSE Nedir?



EADDRINUSE hatası, Node.js uygulamanızda bir port numarasının başka bir uygulama tarafından kullanılmaya çalışıldığı durumda ortaya çıkar. Bu hata, genellikle bir portu kullanan başka bir sürecin aktif olması sonucu oluşur. Yani, senin uygulaman portu alıp kullanmak istiyor, fakat başka bir program bu portu kapmış. Durum böyle olunca da EADDRINUSE hatası meydana gelir. Bu hata mesajı, temelde şunu söyler: "Üzgünüm, bu portu kullanman mümkün değil, çünkü başka biri zaten burada!"

Ama endişelenme, bu tür hatalar genellikle çözülmesi kolay sorunlardır. Şimdi bu durumu nasıl aşabileceğimize bakalım.

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



İlk yapman gereken şey, terminali biraz daha yakından incelemek. Eğer bir Node.js projesi üzerinde çalışıyorsan, terminalde şu hatayı görmen olası:


Error: listen EADDRINUSE: address already in use 


Şimdi senin için bu hatanın çözümüne giden yolda birkaç pratik adım sunacağım.

1. Hangi Portun Kullanıldığını Bul



Port numarasını öğrenmek için terminalde aşağıdaki komutu çalıştırabilirsin. Bu komut, hangi sürecin hangi portu kullandığını gösterir:


lsof -i :


Bu komut, terminalde o portu kullanan sürecin ID numarasını gösterir. Şimdi bu ID'yi kullanarak, o süreci sonlandırabiliriz.

2. Süreci Sonlandır



Eğer bir sürecin portu kullandığını görürsen, o süreci sonlandırmak için şu komutu kullanabilirsin:


kill -9 


Bu komut, belirttiğin süreç ID'sini sonlandırarak portun serbest kalmasını sağlar. Eğer çok fazla sürecin olduğunu düşünüyorsan ve hangi sürecin olduğunu hatırlayamıyorsan, genel bir kontrol yapmak için aşağıdaki komutu çalıştırabilirsin:


ps aux | grep node


Bu komut, Node.js ile ilgili tüm süreçleri listeler. Böylece hangi sürecin hangi portu kullandığını daha rahat görebilirsin.

3. Port Numarasını Değiştir



Eğer süreci sonlandırmak istemiyor veya başka bir sebepten ötürü devam etmek istiyorsan, port numarasını değiştirmek oldukça basit bir çözüm olabilir. Node.js uygulamanda portu şu şekilde değiştirebilirsin:


app.listen(3000, () => {
  console.log('Server running on port 3000');
});


Burada `3000` numaralı portu değiştirebilirsin. Örneğin, portu 4000 olarak değiştirmek için:


app.listen(4000, () => {
  console.log('Server running on port 4000');
});


Bu yöntem, port çakışmalarının önüne geçmenin basit bir yoludur.

4. Uygulama Durumunu Kontrol Et



Bazen hatalar, uygulamanın çökmesi sonucu portun serbest bırakılmaması nedeniyle oluşur. Uygulamanın düzgün çalışıp çalışmadığını kontrol etmek için:


ps aux | grep node


Komutunu kullanarak, çalışan Node.js süreçlerini kontrol edebilirsin. Eğer uygulama düzgün çalışmıyorsa, yeniden başlatmayı deneyebilirsin.

5. Node.js'i Yeniden Başlat



Bazen basit bir yeniden başlatma, her şeyi yoluna koyar. Uygulamanı durdurup yeniden başlatmak, portun doğru şekilde serbest bırakılmasını sağlar.


ctrl + c
node app.js


Bunlar, Node.js projelerinde karşılaşılan EADDRINUSE hatasını çözmek için kullanabileceğin temel adımlardır.

Sonuç



EADDRINUSE hatası, geliştiriciler için can sıkıcı olabilir, ancak çözümü oldukça basittir. Süreçlerin hangi portu kullandığını anlamak, doğru port numarasını değiştirmek veya süreci sonlandırmak gibi adımlar sayesinde bu hatayı hızla düzeltebilirsin. Kısacası, karşına çıkan bu hata, seni doğru çözümü bulmaya iten küçük bir engel. Artık Node.js uygulamanı sorunsuz şekilde çalıştırabilirsin!

İ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...