Node.js "EADDRINUSE" Hatası ve Çözümü: Hemen Çözmeniz Gereken 3 Adım

Node.js "EADDRINUSE" Hatası ve Çözümü: Hemen Çözmeniz Gereken 3 Adım

Node.js geliştiricilerinin sıkça karşılaştığı "EADDRINUSE" hatasının ne anlama geldiğini ve nasıl çözüleceğini anlatan kapsamlı bir rehber. Port çakışmalarını nasıl tespit edip çözebileceğinizi öğrenin.

BFS

Node.js geliştiricisiyseniz, büyük ihtimalle "EADDRINUSE" hatasıyla karşılaşmışsınızdır. Peki, bu hata tam olarak ne anlama geliyor? Ve nasıl çözülebilir? Hadi, bu hatayı anlamak için derin bir yolculuğa çıkalım!

"EADDRINUSE" Hatası Nedir?


Bir gün projenizi çalıştırdınız, her şey yolunda gibiydi. Kodunuzu başlatırken ise aniden karşınıza "EADDRINUSE" hatası çıktı. Birkaç saniye içinde aklınızda beliren tek soru: "Ne demek bu?"

Bu hata aslında çok basit bir sorundan kaynaklanır: Bir portu başka bir uygulama kullanıyor. Yani, bilgisayarınızda bu portu dinlemeye çalışan başka bir süreç var. Node.js, bu portu kullanarak istemcilerle bağlantı kurmak istiyor ama ne yazık ki bu port zaten işgal edilmiş durumda. Bu da size bu hatayı gösteriyor.

1. Adım: Hangi Portu Kullandığınızı Kontrol Edin


İlk yapmanız gereken, hatayı aldığınızda hangi portu kullanmaya çalıştığınızı öğrenmektir. Genellikle, hata mesajı şu şekilde görünür:
“Error: listen EADDRINUSE: address already in use :::3000”. Bu durumda, port 3000 kullanılamaz hale gelmiştir. Peki, nasıl kontrol edebilirsiniz?

Terminal üzerinden, aşağıdaki komutları kullanarak portu hangi süreçlerin kullandığını öğrenebilirsiniz:

lsof -i :3000


Bu komut, portu kullanan süreci gösterir. Eğer bir şey görüyorsanız, bu süreç muhtemelen çakışmaya neden oluyor.

2. Adım: Portu Kullanan Süreci Sonlandırın


Eğer yukarıdaki komut ile portu hangi süreçlerin kullandığını öğrendiyseniz, bu süreci sonlandırmak için aşağıdaki komutu kullanabilirsiniz:

kill -9 [PID]


Buradaki [PID], terminalde gördüğünüz süreç ID’sidir. Bu komut ile, portu kullanan süreci sonlandırabilir ve Node.js uygulamanızı başlatabilirsiniz. Eğer süreç bir şekilde kapanmıyorsa, bilgisayarınızı yeniden başlatmak da bir çözüm olabilir.

3. Adım: Portu Değiştirin


Eğer "EADDRINUSE" hatasından sık sık şikayetçiyseniz, port numarasını değiştirmeyi deneyebilirsiniz. Özellikle aynı portu kullanan başka uygulamalar varsa, port değişikliği yapmak kolay bir çözüm olabilir.

Node.js uygulamanızda portu değiştirmek için sadece şu şekilde bir güncelleme yapabilirsiniz:

const express = require('express');
const app = express();
const port = 3001;  // Port numarasını değiştirin

app.listen(port, () => {
  console.log(`Server running at http://localhost:${port}`);
});


Bu şekilde, 3000 yerine 3001 gibi başka bir port numarası seçerek bu hatayı geçebilirsiniz.

Sonuç: "EADDRINUSE" Hatasını Çözmek Basit!


Görünüşte karmaşık gibi duran bu hata, aslında sadece port çakışmasından kaynaklanıyor. Yukarıdaki adımları takip ederek bu hatayı kolayca çözebilir ve projenizle yolunuza devam edebilirsiniz. Unutmayın, yazılım geliştirmek bazen küçük engellerle karşılaşmayı gerektirir, ama çözüm her zaman yakındadır!

İlgili Yazılar

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

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

Steam İstemcisinin Çökmesi: Sorunları Çözmek İçin Pratik Adımlar

Steam İstemcisinin Çökme Sorunu Neden Olur?Merhaba! Eğer sen de Steam istemcisinin birden bire çökmesiyle karşılaştıysan, yalnız değilsin. Bu, aslında pek çok Steam kullanıcısının karşılaştığı yaygın bir sorun. Steam, oyun dünyasının en popüler platformlarından...

PHP "Warning: Division by zero" Hatası: Sorun, Çözüm ve Dikkat Edilmesi Gerekenler

PHP dünyasında, programcıların karşılaştığı en yaygın hatalardan biri olan "Warning: Division by zero" hatasını ele alıyoruz. Bu hata, küçük bir bölücü hatasından dolayı uygulamanızın çalışmasını engelleyebilir. Hadi, bu hatayı daha yakından inceleyelim...