NestJS — Node.js للمؤسسات

تكامل Full-Stack: الأصول الساكنة والقوالب وبناء الواجهة

18 دقيقة الدرس 77 من 80

تكامل Full-Stack: الأصول الساكنة والقوالب وبناء الواجهة

قد يستضيف تطبيق NestJS كامل لوحة إدارة، ويقدم بناء React أو Vue، ويعرض صفحات معاملات، ويكشف مسارات API من العملية نفسها. المفتاح هو ضبط الحدود والتخزين المؤقت.

الفكرة الأساسية

تدور هذه الميزة حول التحكم في كيفية تنظيم التطبيق وسلوكه وقت التشغيل. النقاط التالية هي ما يجب أن يعرفه المطور قبل استخدامها في مشروع حقيقي:

  • تستطيع ServeStaticModule تركيب مجلد dist للواجهة في الجذر بينما تبقى مسارات API تحت /api.
  • تفيد محركات القوالب للصفحات المعروضة على الخادم مثل تأكيد إعادة كلمة المرور أو شاشات الإدارة.
  • ينبغي للأصول الساكنة استخدام أسماء ذات بصمة ورؤوس تخزين طويلة.
  • يجب ترتيب مسارات API ومسارات fallback للواجهة حتى لا يبتلع catch-all الخاص بـ SPA استدعاءات API.
  • للواجهات العامة عالية الحركة قد تتفوق استضافة CDN منفصلة على تقديم الملفات من عملية Nest.

مثال عملي

يوضح المثال التالي الشكل العملي للفكرة داخل مشروع NestJS. ليست الغاية حفظ الكود، بل فهم مكانه في المعمارية:

ServeStaticModule.forRoot({ rootPath: join(__dirname, '..', 'client'), exclude: ['/api/{*path}'], }); app.setBaseViewsDir(join(__dirname, '..', 'views')); app.setViewEngine('hbs'); @Controller('account') export class AccountPagesController { @Get('verified') @Render('verified') verified() { return { title: 'Email verified' }; } }
ملاحظة تصميمية: تشغيل كل شيء في عملية واحدة مريح، لكن لا تدع الراحة تمحو الحدود. يجب أن تملك واجهة التوجيه وAPI والصفحات المعروضة مسؤوليات واضحة.

قائمة تطبيق إنتاجية

  • ركّب API تحت بادئة قبل إضافة fallbacks للواجهة.
  • استخدم أصول واجهة ذات بصمة ورؤوس تخزين طويلة.
  • اجعل الصفحات المعروضة الحساسة خلف حراس.
  • انقل تسليم الأصول إلى CDN عندما يصبح النطاق أو زمن الاستجابة مهماً.
قاعدة عملية: إذا جعلت الميزة الحدود أوضح والاختبارات أسهل فهي اختيار جيد. إذا أخفت التبعيات أو صعّبت التتبع، فأعد التصميم.

الخلاصة

يغطي هذا الدرس جزءاً متقدماً من NestJS يجب فهمه عند بناء تطبيقات مؤسسية. ركّز على الحدود الواضحة، والسلوك القابل للاختبار، واختيار الأداة المناسبة للسياق بدلاً من استخدام كل ميزة في كل مكان.