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

**

BFS


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

Node.js "ECONNREFUSED" Hatası ve Çözümü: Neyin Yanlış Gittiğini Anlamak

Hadi, bir sabah Node.js ile ilgili yeni bir projeye başlamak üzere bilgisayarınızın başına geçtiniz. Çalışmalarınızı hızla ilerletmeye başladınız, ama birdenbire karşınıza korkutucu bir hata çıktı: ECONNREFUSED. Ekranda beliren bu hata, internetteki kaynaklardan...

Express.js ile API Geliştirme: Kolay ve Hızlı Bir Başlangıç

Express.js Nedir ve Neden Kullanılır?Bir zamanlar, frontend ve backend geliştirme arasındaki farklar göz kamaştırıcıydı. Ancak zamanla, backend geliştirme dünyası hızla evrildi ve işler daha verimli, daha hızlı hale geldi. Bu değişimin öncülerinden biri...

Node.js "ECONNREFUSED" Hatası: Çözüm Adımlarıyla Savaşın Kazanılacağı Yolculuk

Node.js ile çalışırken, bazen istemediğiniz bir misafir gibi, *ECONNREFUSED* hatası karşınıza çıkar. Bu hata, "bağlantı reddedildi" anlamına gelir ve çoğu zaman bir şeylerin yanlış gittiğini size haber verir. Peki, bu hatanın arkasında ne var? Hadi birlikte...