Node.js EADDRINUSE Hatası: Nedir Bu?
Node.js ile geliştirdiğiniz uygulamalarda, genellikle uygulamanız bir port üzerinden çalışır. Bu port, tarayıcılar veya başka istemciler tarafından erişilebilen bir kapıdır. Örneğin, bir web uygulaması 3000 portunu kullanabilir. Fakat bazen bu port başka bir uygulama tarafından zaten kullanılıyor olabilir. Bu durumda, Node.js bu portu almakta zorlanır ve “EADDRINUSE” hatasını verir.
“Address already in use” hatası, kısaca bir portun başka bir işlem tarafından işgal edilmesi nedeniyle oluşur. Bu, genellikle geliştirme aşamasında sık karşılaşılan bir hatadır çünkü bazen eski bir uygulama terminalde açık kalır ve portu bırakmaz.
EADDRINUSE Hatası Çözümü: Adım Adım Rehber
Şimdi bu sorunun çözümüne geçelim. Bu hatayı nasıl düzelteceğinizi adım adım açıklayacağız:
1. Portu Kapatmak
İlk yapmanız gereken şey, portu kullanan başka bir uygulamayı kapatmak. Bunun için terminali açın ve aşağıdaki komutu girin:
lsof -i :3000
Yukarıdaki komut, 3000 portunu kullanan tüm işlemleri listeleyecektir. Burada portu kullanan işlem numarasını (PID) görebilirsiniz. Sonrasında şu komutu kullanarak bu işlemi sonlandırabilirsiniz:
kill -9 PID
Buradaki PID kısmına, listede gördüğünüz işlem numarasını yazın. Bu komut, portu kullanan işlemi sonlandıracak ve portu serbest bırakacaktır.
2. Yeni Bir Port Numarası Seçmek
Eğer bu işlemle çözüm bulamadıysanız, basit bir çözüm daha var: Farklı bir port numarası seçmek. Node.js uygulamanızda, varsayılan olarak 3000 portunu kullanabilirsiniz, ancak bu port başkası tarafından kullanılıyorsa, başka bir portu tercih edebilirsiniz.
Aşağıdaki gibi, farklı bir port numarası belirleyebilirsiniz:
app.listen(4000, () => {
console.log("Sunucu 4000 portunda çalışıyor!");
});
Burada 4000 portunu kullandık, ama siz dilediğiniz başka bir portu seçebilirsiniz. Bu, “EADDRINUSE” hatasını geçici olarak çözebilir.
3. Terminali Yeniden Başlatmak
Bazen terminaldeki eski bağlantılar sorun yaratabilir. Eğer portu kullanan bir işlem görünmüyorsa ama hâlâ hatayı alıyorsanız, terminali kapatıp yeniden açmak işe yarayabilir. Bu, özellikle geliştirme aşamasında sıkça karşılaşılan basit bir çözümdür.
4. Uygulamayı Tekrar Başlatmak
Eğer sorun geçmediyse, uygulamanızı tamamen kapatıp tekrar başlatmak, bazen bu tür port sorunlarını çözebilir. Terminali açın ve Node.js uygulamanızın bulunduğu dizine gidin. Ardından şu komutla uygulamanızı başlatın:
node app.js
Bu komutla uygulamanızın tekrar çalıştığından emin olun. Eğer hala aynı hatayı alıyorsanız, adım adım çözümleri tekrar gözden geçirebilirsiniz.
Sonuç: EADDRINUSE Hatasıyla Başa Çıkmak
Node.js uygulamaları geliştirirken karşılaştığınız “EADDRINUSE” hatası, aslında oldukça yaygın ve genellikle hızlı bir şekilde çözülebilir. Port numarasını serbest bırakmak veya farklı bir port seçmek bu sorunu çözmenin en yaygın yollarıdır. Ayrıca, terminali yeniden başlatmak veya eski işlemleri sonlandırmak da bazen bu tür hataları ortadan kaldırabilir.
Her zaman kodunuzu dikkatlice test etmek ve geliştirme sürecinde port numarası çakışmalarını önceden tahmin edebilmek, uzun vadede size zaman kazandıracaktır. Unutmayın, her sorunun bir çözümü vardır, bu hata da sadece kısa bir duraklama.