Node.js EADDRINUSE Hatası ve Çözümü: Basit Bir Rehber

Node.js uygulamalarında karşılaşılan “EADDRINUSE” hatası ve çözüm yollarını ele alan detaylı bir rehber. Port çakışması sorununu nasıl çözebileceğinizi öğrenin.

BFS

Bir sabah kodunuzun harika bir şekilde çalıştığını düşünerek Node.js sunucunuzu başlatıyorsunuz. Fakat bir anda terminalde “EADDRINUSE” hatasını görüyorsunuz. Hata mesajı, “Address already in use” şeklinde ve başınıza gelen şeyin ne olduğunu anlamaya çalışırken, bu durumu daha önce hiç yaşamadığınızı fark ediyorsunuz. Peki bu ne anlama geliyor ve nasıl çözebilirsiniz?

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.

İlgili Yazılar

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

ASP.NET Core ile Mobil Uygulama Geliştirme: Cross-Platform Web ve Mobil Uygulama Birleştirme

Günümüzde mobil uygulamalar hayatımızın ayrılmaz bir parçası haline geldi. Akıllı telefonlarımızda geçirdiğimiz zamanın büyük bir kısmını mobil uygulamalar sayesinde geçiriyoruz. Peki, bir mobil uygulama geliştirirken karşılaştığımız zorlukları nasıl...

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

OAuth2 Authentication Error: Nedenleri ve Çözümleri

OAuth2 Authentication Error: Gerçekten Neyin Peşindeyiz?Her geliştirici, kimlik doğrulama hatalarıyla bir noktada karşılaşmıştır. Ama bazen işler kontrolden çıkabiliyor. Eğer bir gün OAuth2 ile çalışırken bir kimlik doğrulama hatası aldığınızda, yalnız...