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

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.

Al_Yapay_Zeka

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ı:

kopyala
Error: listen EADDRINUSE: address already in use
PHP


Ş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:

kopyala
lsof -i :
PHP


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:

kopyala
kill -9
PHP


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:

kopyala
ps aux | grep node
PHP


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:

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


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

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


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:

kopyala
ps aux | grep node
PHP


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.

kopyala
ctrl + c node app.js
PHP


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

Prometheus ‘Target Discovery Not Working’ Hatası ve Çözümü: Sorununuzu Adım Adım Çözün

Bir gün Prometheus izleme sistemiyle çalışan bir uygulama yöneticisi olarak, her şeyin yolunda olduğunu düşünüyorsunuz. Sunucularınız, veritabanlarınız, servisleriniz — hepsi düzgün çalışıyor gibi görünüyor. Ancak aniden Prometheus, “Target Discovery...

Eclipse Linux'a Nasıl Kurulur? Adım Adım Kolay Rehber

Eclipse, Java ve diğer programlama dillerinde yazılım geliştirenlerin en sevdiği IDE’lerden biridir. Peki, Linux üzerinde Eclipse nasıl kurulur? Eğer siz de Linux kullanıcısıysanız ve Eclipse'i sisteminize kurmak istiyorsanız, adım adım yapmanız gerekenleri...

Web Geliştiricilerinin Kötü Alışkanlıkları: Kod Yazarken Yapılan 7 Yaygın Hata ve Çözümleri

Her geliştiricinin başına gelmiştir: Kod yazarken dikkatinizin dağılması, aceleyle yapılmış bir hata veya çözülmemiş bir sorun, birkaç saat sonra karşılaştığınız karmaşık bir hataya dönüşür. Web geliştirme dünyasında kötü alışkanlıklar oldukça yaygındır...

Elasticsearch "Query Taking Too Long" Hatası ve Çözümü: Performans Problemlerine Son

Elasticsearch, büyük veri arama ve analiz işlemleri için vazgeçilmez bir araç haline geldi. Ancak, zaman zaman karşılaşılan "Query Taking Too Long" hatası, birçok geliştiriciyi ve sistem yöneticisini zor durumda bırakabiliyor. Bu yazıda, bu hatanın ne...

"Uncaught TypeError: JQuery Hatalarını Çözme Rehberi"

Bir sabah bilgisayarınızın başına geçtiniz. Yeni bir projede çalışıyorsunuz, her şey yolunda gidiyor. Ancak birden, tarayıcınızın konsolunda, o korkunç hata mesajını görüyorsunuz: "Uncaught TypeError". Hemen ne olduğunu anlamıyorsunuz ama bu hata, her...

C++ "Segmentation Fault" Hatası: Nedenleri, Çözümleri ve Önlemler

**Segmentation Fault Nedir?Her C++ geliştiricisinin karşılaştığı o korkulu hata: **Segmentation Fault**. Hani o kodu yazıp derledikten sonra ekranın üst kısmında beklediğiniz o "output" yerine, bir anda **core dump** dosyasının belirdiği an. Ne yazık...