CodeBlanks Logo Icon CodeBlanks

app.listen

app.listen ile sunucuyu başlatmayı öğrenirsin.

app.listen

app.listen(port, callback) sunucuyu belirli bir kapıda (port) dinlemeye başlatır. Bu çağrı yapılmadan Express uygulaması istek kabul etmez. İkinci parametre, sunucu başlayınca çağrılan bir geri çağırmadır (callback).

Örnek: app.listen(3000, () => console.log("Sunucu başladı"));. Bu, 3000 kapısında dinlemeye başlar ve başlayınca Sunucu başladı yazdırır. app.listen geri çağırması genellikle bir onay mesajı yazdırır; böylece sunucunun hazır olduğunu bilirsin. Geliştirmede yaygın kapılar 3000, 8000, 8080'dir; üretimde ise 80 (HTTP) veya 443 (HTTPS) kullanılır. Express, http.createServer'ı arka planda çağırır; sen doğrudan onunla uğraşmazsın.

Sunucuyu başlatma

app.listen çağrıldıktan sonra Express, belirtilen kapıda gelen istekleri dinler. Her istek, tanımladığın rotalarla eşleştirilir ve uygun handler çağrılır.

Örnek: const server = app.listen(3000, () => console.log("Sunucu başladı"));. app.listen bir sunucu nesnesi döndürür; bunu server değişkenine atayabilirsin. server.close() ile sunucuyu durdurursun. Bu, testlerde veya geçici şunucularda yararlıdır. Geliştirme sırasında sunucu sürekli çalışır; terminalden Ctrl+C ile durdurursun. Çok sayıda rota olsa bile tek bir app.listen tüm uygulamayı başlatır.

Uygulama Sunucuyu başlat

express içe aktar ve app oluştur. app.get("/", (req, res) => res.send("Çalışıyor")) ile bir rota tanımla. const server = app.listen(3000, () => console.log("Sunucu başladı")) ile sunucuyu başlat. Altındaki hazır kod bir istek atar ve sonucu yazdırır.

Başlangıç kodu

index.js
// express içe aktar, app oluştur ve "/" rotası ekle
// buraya yaz

// Sunucuyu 3000 kapısında başlat, callback "Sunucu başladı" yazsın
// buraya yaz

setTimeout(() => {
  const http = require("http");
  http.get("http://localhost:3000/", (res) => {
    let body = "";
    res.on("data", (c) => body += c);
    res.on("end", () => { console.log("Yanıt: " + body); server.close(); });
  });
}, 100);

Örnek çözüm

index.js
const express = require("express");
const app = express();
app.get("/", (req, res) => res.send("Çalışıyor"));
const server = app.listen(3000, () => console.log("Sunucu başladı"));

setTimeout(() => {
  const http = require("http");
  http.get("http://localhost:3000/", (res) => {
    let body = "";
    res.on("data", (c) => body += c);
    res.on("end", () => { console.log("Yanıt: " + body); server.close(); });
  });
}, 100);

Beklenen çıktı

Sunucu başladı
Yanıt: Çalışıyor

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 app.listen çağrısını tamamla

Soru
app.____(3000, () => console.log("Sunucu başladı"));
Cevap
app.listen(3000, () => console.log("Sunucu başladı"));

Açıklama: app.listen sunucuyu başlatır.

2 Parçayı rolüne eşle

Kavram Anlamı
app.listen Sunucuyu başlatır
port (3000) Kapı numarası
callback Sunucu başlayınca çağrılır
server.close Sunucuyu durdurur

3 app.listen'in ikinci parametresi nedir?

index.js
app.listen(3000, ?)
  • Kapı numarası
  • Bir rota yolu
  • Bir modül adı
  • Sunucu başlayınca çağrılan callback Doğru cevap

Açıklama: İkinci parametre callback'tir.

Orta seviye bölümündeki tüm dersler