app.listen
- Node.js kursu
- Orta seviye
- Ders 28/116
- 5 dk
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
// 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
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
app.____(3000, () => console.log("Sunucu başladı"));
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?
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.