Node.js EADDRINUSE Hatası ve Çözümü: İşte Adım Adım Yapmanız Gerekenler!

Node.js EADDRINUSE hatasıyla karşılaşanlar için adım adım çözüm önerileri ve basit bir rehber.

BFS

Node.js ile uygulama geliştiren birçok geliştirici, bir noktada EADDRINUSE hatasıyla karşılaşmıştır. Bu hata, genellikle bir portun başka bir uygulama tarafından kullanımda olduğunu belirtir. Ama endişelenmeyin, bu hatayı çözmek hiç de zor değil. Bu yazıda, EADDRINUSE hatasının ne olduğunu, nasıl ortaya çıktığını ve çözüm yollarını adım adım ele alacağız.

Node.js EADDRINUSE Hatası Nedir?



EADDRINUSE hatası, Node.js uygulamanız bir portu kullanmaya çalışırken, o portun zaten başka bir uygulama tarafından kullanıldığını belirten bir hata mesajıdır. Bu durumda, Node.js uygulamanız başlatılamaz ve uygulama çalışmaz. Genellikle şu şekilde bir hata mesajı alırsınız:


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


Bu hata, uygulamanızın dinlemeye çalıştığı portun başka bir işlem tarafından "kapılmış" olduğunu gösterir. Yani 3000 portunu kullanmaya çalışan bir uygulama varsa, bir başka uygulama da aynı portu kullanmaya çalışırsa, Node.js bu hatayı verir.

Hata Nasıl Ortaya Çıkar?



Genellikle iki durum bu hataya yol açar:

1. Aynı Portu Kullanan Birden Fazla Uygulama: Eğer bilgisayarınızda farklı bir uygulama aynı portu (örneğin, 3000) kullanıyorsa ve siz de aynı portu Node.js uygulamanızda kullanmak istiyorsanız, bu çakışma hataya yol açacaktır.
2. Uygulamanın Önceki Oturumlarının Kapanmaması: Node.js uygulamanızı başlattınız, ancak kapatmayı unuttunuz. Bu durumda, uygulamanın eski oturumu hâlâ çalışıyor olabilir ve aynı portu kullanıyor olabilir.

Peki, bu durumu nasıl düzelteceğiz? Hadi birlikte çözüm yollarına göz atalım!

EADDRINUSE Hatasını Nasıl Çözebiliriz?



1. Kullandığınız Portu Değiştirmek

En kolay çözüm, kullandığınız portu değiştirmektir. Örneğin, eğer 3000 portu kullanılmakta ise, başka bir port numarasına geçebilirsiniz.


const http = require('http');

const hostname = '127.0.0.1';
const port = 3001; // Portu değiştirdik

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Merhaba, dünya!\n');
});

server.listen(port, hostname, () => {
  console.log(`Sunucu ${hostname}:${port} adresinde çalışıyor.`);
});


Bu basit çözüm çoğu zaman işe yarar. Ancak, bu her zaman mümkün olmayabilir. Portu değiştirmek yerine başka bir çözüm de arayabiliriz.

2. Hangi Uygulamanın Portu Kullandığını Bulmak

Eğer aynı portu kullanan bir başka uygulama varsa, o uygulamayı bulmak ve kapatmak da iyi bir çözüm olabilir. Bunun için, terminal ya da komut istemcisinde aşağıdaki komutları kullanabilirsiniz.

Mac/Linux:

lsof -i :3000


Bu komut, 3000 portunu kullanan işlemin ID'sini gösterir. Daha sonra bu işlemi öldürebilirsiniz:


kill -9 


Windows:

Windows üzerinde de benzer bir işlem yapabilirsiniz. İlk olarak, portu kullanan işlem kimliğini (PID) öğrenmek için:


netstat -ano | findstr :3000


Bu komut, 3000 portunu kullanan işlem kimliğini verir. Daha sonra bu işlemi kapatmak için:


taskkill /PID  /F


Bu komut, belirtilen işlemi zorla kapatacaktır.

3. Node.js Uygulamanızın Gereksiz Oturumları Kapalı Tutun

Node.js uygulamanız bir sebepten dolayı düzgün kapanmamış olabilir ve portu hala açık tutuyor olabilir. Eğer terminalde `Ctrl+C` komutunu kullanarak çıkış yapmanıza rağmen port hala açık kalıyorsa, uygulamanın arka planda hala aktif olma ihtimali vardır. Bunu engellemek için her zaman düzgün bir şekilde `exit` komutunu kullanarak uygulamanızın oturumunu kapatmayı unutmayın.

Sonuç Olarak



Node.js ile uygulama geliştirirken karşılaştığınız EADDRINUSE hatası, aslında oldukça yaygın bir durumdur ve çözümü de son derece basittir. Portu değiştirmek, işlemleri kapatmak ve gereksiz uygulama oturumlarını sonlandırmak bu sorunun çözülmesinde yardımcı olacaktır. Unutmayın, hata yapmaktan korkmayın, çünkü her hata size yeni bir şey öğretir!

Şimdi, portlarınızın savaşını kazandınız ve Node.js uygulamanız bir kez daha çalışıyor!

İlgili Yazılar

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

NetBeans Debugging Başlatılmıyor – Çözüm Adımları ile Sorunu Gidermek

Her programcı, özellikle de yeni başlayanlar, zaman zaman NetBeans gibi popüler bir IDE kullanırken sorunlarla karşılaşabilirler. Bu sorunlar arasında en sinir bozucusu, şüphesiz "Debugging Başlatılmıyor" hatasıdır. Ancak merak etmeyin, bu hata tek bir...

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