Node.js "EADDRINUSE" Hatası ve Çözüm Yolları

Node.js geliştiricilerinin karşılaştığı "EADDRINUSE" hatası hakkında detaylı çözüm önerileri ve açıklamalar.

BFS

Node.js, her geliştiricinin severek kullandığı, güçlü ve hızlı bir JavaScript çalışma ortamıdır. Ancak bazen, geliştirirken karşımıza beklenmedik hatalar çıkabilir. Bu yazımızda, en sık karşılaşılan hatalardan biri olan "EADDRINUSE" hatasına odaklanacağız. Peki, bu hata nedir ve nasıl çözülür?

EADDRINUSE Nedir?



Node.js ile çalışırken, genellikle şu hatayı alırsınız:

```
Error: listen EADDRINUSE: address already in use 127.0.0.1:3000
```

Bu hata, Node.js'in başlatmak istediğiniz sunucunun kullanmaya çalıştığı portun (bu örnekte 3000) zaten başka bir süreç tarafından kullanıldığını belirtir. Yani, bu port üzerinde başka bir uygulama çalışıyordur ve Node.js o portu kullanarak başlamak istese de bu mümkün olmuyor.

Port Çakışması olarak da adlandırılabilecek bu sorun, genellikle portu serbest bırakmayı unuttuğumuzda, aynı portu birden fazla kez kullanmaya çalıştığımızda veya bir uygulama beklenmedik şekilde kapanıp portu serbest bırakmadığında ortaya çıkar.

EADDRINUSE Hatası ile Karşılaştığınızda Ne Yapmalısınız?



Şimdi gelin, bu hatayı nasıl çözebileceğimize bakalım. İlk başta paniğe kapılmayın, bu tür hatalar genellikle oldukça basit çözümlerle halledilebilir.

1. Çalışan Uygulamayı Bulun ve Kapatın

EADDRINUSE hatası, genellikle kullanılan portu serbest bırakmayan bir uygulamadan kaynaklanır. Bu durumda, portu hangi uygulamanın kullandığını bulmanız gerekir.

Linux veya MacOS kullanıyorsanız, şu komut ile o portu kullanan süreci bulabilirsiniz:


lsof -i :3000


Windows kullanıcıları içinse şu komut ile portu kullanan süreci bulabilirsiniz:


netstat -ano | findstr :3000


Bu komutlar, o portu kullanan işlemi size gösterecektir. Şimdi bu süreci sonlandırarak portu serbest bırakabiliriz.

Linux veya MacOS'ta, bu işlemi şu şekilde yapabilirsiniz:


kill -9 


Windows’ta ise şu komutu kullanarak süreci sonlandırabilirsiniz:


taskkill /PID  /F


2. Node.js Sunucusunu Yeniden Başlatın

Eğer portu serbest bırakıp süreci sonlandırdıysanız, Node.js uygulamanızı yeniden başlatmayı deneyin. Bu, genellikle hatayı çözecektir.

3. Alternatif Bir Port Seçin

Bazen, basitçe farklı bir port kullanmak da çözüm olabilir. Örneğin, 3000 portu doluysa, 3001 veya 5000 gibi başka bir portu seçebilirsiniz. Bunun için Node.js uygulamanızda şu şekilde port numarasını değiştirebilirsiniz:


const http = require('http');

const hostname = '127.0.0.1';
const port = 3001;  // Port numarasını değiştirdik

http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
}).listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});


4. Portu Dinleyen Uygulamaları Kontrol Edin

Eğer portu kullanan süreci bulamıyorsanız, başka bir uygulamanın arka planda çalışıyor olabileceğini unutmayın. Özellikle sunucu çalışırken terminali kapatmış olabilirsiniz, ancak süreç hâlâ çalışıyor olabilir. Bu tür durumlarda, terminaldeki geçmiş komutları kontrol edebilir ve ilgili süreci sonlandırabilirsiniz.

Sonuç



Node.js’te karşılaşılan "EADDRINUSE" hatası, genellikle port çakışmalarından kaynaklanır ve çözümü oldukça basittir. Süreci bulup sonlandırmak, port numarasını değiştirmek veya sunucunuzu yeniden başlatmak genellikle problemi çözecektir. Bu adımları takip ettiğinizde, bir sonraki Node.js uygulamanızda port çakışmaları nedeniyle zaman kaybetmeden hızla çözüm bulabilirsiniz.

Önemli Not: Uygulamanızın her zaman doğru portu kullandığından ve gereksiz uygulamaları sonlandırdığınızdan emin olun. Böylece "EADDRINUSE" hatasını bir daha yaşamazsınız.

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