پرش به مطلب اصلی

میان‌افزار میان‌افزارهای شامل شده (IncludeMiddlewares)

این میان‌افزار مسئول اجرای middleware تعریف شده در route است.

هدف

این میان‌افزار امکان تعریف middlewares سفارشی برای routeهای خاص را فراهم می‌کند.

نحوه کار

  1. دریافت اطلاعات route از درخواست
  2. بررسی وجود includeMiddlewares در route
  3. بارگذاری و اجرای middlewares تعریف شده
  4. مدیریت خطاهای middlewares

تعریف Include Middlewares

// در تعریف route
{
path: "/admin/users",
methods: ["get"],
includeMiddlewares: ["AuthAdmin", "RateLimit"],
controller: "AdminController",
action: "listUsers"
}

ویژگی‌ها

  • Middlewares پویا: بارگذاری middlewares در زمان اجرا
  • اولویت core: ابتدا middlewares core جستجو می‌شوند
  • پشتیبانی app: سپس middlewares برنامه جستجو می‌شوند
  • مدیریت خطا: متوقف کردن درخواست در صورت خطا

جستجوی Middlewares

Middleware ابتدا در middlewares core جستجو می‌کند:

const middleClass = await Global.WebServer.loadCoreMiddleware(middle);

در صورت عدم یافتن، در middlewares برنامه جستجو می‌کند:

const middleClass = await Global.WebServer.loadAppMiddleware(middle, appName);

خطاها

  • 500 Can not find matched middleware: middleware یافت نشد
  • خطاهای middlewares اجرا شده

مثال استفاده

// تعریف middleware سفارشی در برنامه
export class AuthAdmin extends Middleware {
async handle(req: Request, res: Response) {
const user = req.body.authenticatedUser;
if (!user || user.role !== 'admin') {
return this.responseError(req, 403, 'Admin access required');
}
return true;
}
}

// استفاده در route
{
path: "/admin/dashboard",
includeMiddlewares: ["AuthAdmin"],
// ...
}