"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:
kopyalalsof -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:
kopyalakill -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:
kopyalaconst 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!