دوره‌ها / Node.js / Middleware (Middleware Intro)

Middleware (Middleware Intro)

15 دقیقه Article

Middleware: واسط‌های Express.js 🔧

Middleware توابعی هستن که بین request و response اجرا میشن. این برای logging، authentication، parsing و... استفاده میشه!

const express = require('express');
const app = express();

// Middleware ساده
app.use((req, res, next) => {
    console.log('Request:', req.method, req.url);
    next(); // ادامه به middleware بعدی
});

// Route handler
app.get('/', (req, res) => {
    res.send('Home');
});

Built-in Middleware:

const express = require('express');
const app = express();

// JSON parser
app.use(express.json());

// URL encoded parser
app.use(express.urlencoded({ extended: true }));

// Static files
app.use(express.static('public'));

// Route
app.post('/api/users', (req, res) => {
    // req.body حالا parse شده است
    console.log(req.body);
    res.json({ success: true });
});

Middleware Order:

const express = require('express');
const app = express();

// 1. این اول اجرا میشه
app.use((req, res, next) => {
    console.log('First middleware');
    next();
});

// 2. این دوم اجرا میشه
app.use((req, res, next) => {
    console.log('Second middleware');
    next();
});

// 3. Route handler
app.get('/', (req, res) => {
    res.send('Home');
});
💡 نکته: ترتیب middleware خیلی مهمه! اون‌ها به ترتیب تعریف اجرا میشن!
✅ یاد گرفتید: Middleware برای modularity و code reuse عالیه!

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

تمرین: ساخت Middleware Medium
سوال تمرین

🎯 تمرین: Logger Middleware

یک middleware بسازید که method و path هر request رو log کنه.

پاسخ تمرین
JAVASCRIPT
const express = require('express');
const app = express();

const logger = (req, res, next) => {
    console.log(`${req.method} ${req.path}`);
    next();
};

app.use(logger);

app.get('/', (req, res) => {
    res.send('Hello');
});

app.listen(3000);

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.