میانافزار میانافزارهای شامل شده (IncludeMiddlewares)
این میانافزار مسئول اجرای middleware تعریف شده در route است.
هدف
این میانافزار امکان تعریف middlewares سفارشی برای routeهای خاص را فراهم میکند.
نحوه کار
- دریافت اطلاعات route از درخواست
- بررسی وجود
includeMiddlewaresدر route - بارگذاری و اجرای middlewares تعریف شده
- مدیریت خطاهای 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"],
// ...
}