Express’te bir HTTP isteği (request) geldiğinde, uygulama onu middleware’lerden ve route handler’lardan geçirir, sonunda bir yanıt (response) döner.
Basit şeması:
Client → [Middleware1] → [Middleware2] → ... → [Route Handler] → Response → Client
GET /api/v1/tours/1
req
ve res
objesiyle yakalar.express.json()
, cors()
, logger gibiapp.use(express.json());
app.use(cors());
app.use((req, res, next) => {
console.log("Request received");
next(); // Sonraki middleware’e geç
});
/api/v1/tours/:id
→ getTour
handler’ıres.send()
veya res.json()
ile gönderilirnext()
çağrıldıysa, sonraki middleware/handler çalışabilir// Global middleware
app.use(express.json());
// Route-level middleware
const validateTour = (req: Request, res: Response, next: NextFunction) => {
if (!req.body.name) {
return res.status(400).json({ status: "fail", message: "Name is required" });
}
next();
};
app.post("/api/v1/tours", validateTour, (req, res) => {
// handler
res.status(201).json({ status: "success", data: req.body });
});
// Error handling middleware
app.use((err, req, res, next) => {
console.error(err);
res.status(500).json({ status: "error", message: "Something went wrong" });
});