Node.js EADDRINUSE Hatası ve Çözümü: Port Çakışmasını Nasıl Giderirsiniz?

 Node.js EADDRINUSE Hatası ve Çözümü: Port Çakışmasını Nasıl Giderirsiniz?

**

Al_Yapay_Zeka


Bir gün, uygulamanız üzerinde yoğun bir şekilde çalışırken aniden karşılaştığınız bir hata ile karşılaştınız. Bu hata, "EADDRINUSE" hatasıydı. Ne yazık ki, bu hata genellikle port çakışmalarından kaynaklanır. Yani, istediğiniz port numarasını başka bir uygulama kullanıyordur ve bu da Node.js uygulamanızın o portu kullanmasına engel olur.

Hayal edin, sabah kahvenizi almış, kodu yazmaya başlamışsınız. Fakat birden şu hata mesajını görüyorsunuz:


Error: listen EADDRINUSE 0.0.0.0:3000


Bu, çok yaygın bir Node.js hatasıdır. Hata şunu söylüyor: "Bu port (3000) zaten başka bir işlem tarafından kullanılıyor." Şimdi, panik yapmadan önce, bu hatayı nasıl çözeceğinizi anlamaya çalışalım.

EADDRINUSE Hatası Nedir?

Node.js uygulamanız çalışırken bir portu dinlemeye başlar. Bu port, genellikle bir web sunucusuna ait olur. Eğer başka bir uygulama, aynı portu dinliyorsa, Node.js bu portu almakta zorlanır ve bu da "EADDRINUSE" hatasına yol açar. Örneğin, daha önce başka bir Node.js uygulaması aynı portu kullanmışsa veya bilgisayarınızda başka bir program bu portu işgal ediyorsa, bu hatayı alırsınız.

Bu sorunla karşılaşmanın birkaç yaygın nedeni olabilir:

-
Bir önceki Node.js uygulaması kapatılmadan başka bir uygulama açıldı.
-
Farkında olmadan başka bir servis, o portu kullanıyor olabilir.
-
Sunucu yeniden başlatıldığında port serbest bırakılmamış olabilir.

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

İşte EADDRINUSE hatasını çözmek için birkaç adım:

# 1. Hangi Uygulamanın Portu Kullandığını Bulun
İlk adım, portu kullanan uygulamayı bulmaktır. Eğer Linux veya macOS kullanıyorsanız, şu komut ile hangi uygulamanın portu kullandığını öğrenebilirsiniz:


lsof -i :3000


Windows kullanıyorsanız şu komutu yazabilirsiniz:


netstat -ano | findstr :3000


Bu komutlar, o portu hangi işlem numarasının kullandığını gösterecektir. Eğer bir uygulama, o portu kullanıyorsa, işlem numarasını (PID) bulabilirsiniz.

# 2. İlgili Uygulamayı Sonlandırın
Portu kullanan uygulamayı bulduktan sonra, bu uygulamayı sonlandırmanız gerekecek. Linux veya macOS'ta şu komutla bunu yapabilirsiniz:


kill -9 PID


Windows kullanıyorsanız:


taskkill /PID PID /F


Buradaki PID kısmı, yukarıda bulduğunuz işlem numarasıdır.

# 3. Portu Değiştirme
Eğer portu kullanan uygulamayı sonlandıramazsanız veya bu hatayı sürekli alıyorsanız, başka bir port numarası seçmek en hızlı çözüm olacaktır. Node.js uygulamanızda port numarasını değiştirmek için basitçe şu kodu kullanabilirsiniz:


const express = require('express');
const app = express();
const port = 3001; // Farklı bir port numarası seçin

app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});


Bu şekilde, uygulamanızın başka bir portu dinlemesini sağlayabilirsiniz.

# 4. Portu Dinleyen Uygulamanın Çalışıp Çalışmadığını Kontrol Edin
Son olarak, eğer portu değiştirmek istemiyorsanız, terminal üzerinden portu dinleyen uygulamanın gerçekten çalışıp çalışmadığını kontrol edebilirsiniz. Eğer beklemediğiniz bir durum varsa, sisteminizi yeniden başlatmayı da deneyebilirsiniz. Bazen, portu kullanan işlem bitmemiş olabilir, bu yüzden yeniden başlatma bu tür hataların çözülmesinde faydalı olabilir.

### Sonuç

Node.js üzerinde EADDRINUSE hatası almanız, oldukça sık karşılaşılan bir sorundur. Çözümü ise oldukça basittir. Port çakışmalarını tespit edebilir, portu değiştirebilir veya ilgili uygulamayı sonlandırabilirsiniz. Uygulamanızın düzgün bir şekilde çalışması için bu gibi hataları hızla çözebilmeniz önemlidir.

Artık bu hata ile karşılaştığınızda ne yapmanız gerektiğini biliyorsunuz. Kendinize güvenin, Node.js dünyasında sorunları çözme zamanı geldi!

İlgili Yazılar

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

API Güvenliğini Artırmanın 5 Yolu: Node.js ile Saldırılara Karşı Korunma Stratejileri

API güvenliği, modern web uygulamalarının belki de en kritik unsurlarından biridir. Eğer API’niz güvensizse, sadece uygulamanız değil, aynı zamanda kullanıcı verileriniz ve hatta işletmenizin itibarını da riske atmış olursunuz. Ancak iyi haber şu ki,...

Yapay Zeka ile Web Geliştirme: AI ve Node.js’in Güç Birliği

Yapay zeka (AI) ve web geliştirme, son yıllarda teknolojinin en heyecan verici birleşimlerinden birini oluşturuyor. Özellikle Node.js, web uygulamaları geliştirmek için hızlı, verimli ve ölçeklenebilir bir altyapı sağlıyor. Peki, bu iki güçlü teknoloji...

Node.js Asenkron Programlama: Callback Hell’den Promiselara Geçişin En İyi Yolları

Node.js ile çalışırken bir noktada hepimiz o korkunç “callback hell” ile karşılaştık, değil mi? Geliştiricilerin kabusu haline gelmiş olan bu sorun, programın her geçen gün daha karmaşık hale gelmesine neden olur. Aslında, asenkron işlemlerle başa çıkmak,...

Express.js ile Web Uygulaması Nasıl Yapılır? Adım Adım Rehber

Giriş: Express.js ile BaşlamakHayatımıza hızla giren web uygulamaları, her geçen gün daha fazla gelişiyor. Eğer siz de bu dünyada bir adım atmak istiyorsanız, doğru yerdesiniz! Express.js, web uygulamaları geliştirmek için harika bir araç. Node.js üzerinde...

"Web Performansını Artıran 7 İlginç Node.js Modülü"

Web geliştiricisiyseniz, uygulamalarınızın performansını sürekli olarak iyileştirmeyi düşünüyorsunuzdur. Performans, kullanıcı deneyimi ve SEO için oldukça kritik bir faktör haline geldi. İyi bir kullanıcı deneyimi, hızlı yükleme süreleri ve kesintisiz...

Node.js EventEmitter Memory Leak Uyarısını Çözme: Adım Adım Rehber

Her Node.js geliştiricisi, uygulama geliştirme sürecinde en az bir kez karşılaşmıştır: "EventEmitter memory leak detected" uyarısı. Başlangıçta basit bir hata gibi görünebilir, ama bu uyarı, çok daha büyük bir sorunun habercisidir. Bu yazıda, EventEmitter...