مقدمة إلى NestJS [+6 Learning Resources]

يعد NestJS إطار عمل Node.js تقدميًا لبناء تطبيقات قابلة للتطوير وفعالة وموثوقة من جانب الخادم.

تم تصميم NestJS للتخلص من قواعد البيانات المشوهة. هيكلها المعياري يجعل من السهل تنظيم الكود في وحدات مختلفة.

تم بناء NestJS على Typescript ويستخدم ExpressJS تحت الغطاء. إن NestJS محبوب من قبل المطورين الذين يرغبون في الاستفادة من قوة TypeScript في فحص النوع. يجمع NestJS بين جوانب مختلفة من البرمجة التفاعلية الوظيفية (FRP) ، والبرمجة الموجهة للكائنات (OOP) ، والبرمجة الوظيفية (FP).

لماذا NestJS؟

يعتبر NestJS صديقًا للمبتدئين نظرًا لأنه يتمتع ببنية جيدة وأدوات سهلة الاستخدام لواجهة سطر الأوامر (CLI). وبالتالي يمكن للمطورين سقالة ميزة جديدة بأمر واحد أثناء استخدام إطار عمل Node.js هذا.

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

سيكون منحنى التعلم الخاص بـ NestJS سهلاً لأولئك المتحدثين الذين لديهم حلقات ، وبناء جملة ، وشروط في JavaScript و Angular.

ميزات NestJS

بنيت على تنضيد

تم بناء NestJS على ترميز ، وهو نص مرتفع لجافا سكريبت. يوفر كتاب الكتابة تجربة تطوير أفضل حيث لا يتعين عليك التحقق يدويًا من الأخطاء في كل مرة تقوم فيها بتغيير شيء ما في التعليمات البرمجية. يوفر الطباعي بشكل أساسي جميع ميزات JavaScript ولكنه يأتي أيضًا مع بعض الوظائف الإضافية.

حاوية حقن التبعية

يفصل حقن التبعية تهيئة الكائنات التي يستخدمها الفصل عن الفئة نفسها. في مثل هذه الحالة ، يُطلق على الفئة اسم “العميل” بينما تُعرف تبعيات الفئة باسم “الخدمات”. يجعل DI المدمج في NestJS التطبيقات أكثر كفاءة ووحدات معيارية.

واجهة سطر أوامر قوية (CLI)

يمكنك تهيئة جميع تطبيقات NestJS الخاصة بك وتطويرها وصيانتها باستخدام NestCLI. هناك الكثير من الأشياء التي يمكنك القيام بها باستخدام Nest CLI ، مثل ؛

  • سقالات المشروع
  • خدمة المشروع في وضع التطوير
  • بناء التطبيق وتجميعه لتوزيع الإنتاج

نمذجة

يحتوي كل تطبيق من تطبيقات NestJS على وحدة واحدة على الأقل. وحدة “الجذر” هي أبسط وحدة. في تطبيق NestJS النموذجي ، سيعيش كل جزء منطقي من التطبيق في نفس حدود المجال (الوحدة النمطية). يجعل هذا الإعداد من السهل تنظيم المكونات حيث سيكون للتطبيق وحدات نمطية متعددة مع مجموعة من الإمكانات وثيقة الصلة.

  أرقام المنافذ الافتراضية التي تحتاج إلى معرفتها كمسؤول نظام

وحدة التجارب

يأتي الاختبار الآلي مع الكثير من الفوائد. ومع ذلك ، يمكن أن تكون عملية إعداد مثل هذه الاختبارات أكثر إشراكًا. لدى NestJS العديد من الميزات لمساعدة الفرق على بناء الاختبارات وأتمتةها. الشيء الجيد في NestJS هو أنه يمكن استخدامه مع أدوات اختبار متنوعة. يتم توفير نظام حقن التبعية من Nest أثناء الاختبار من أجل محاكاة المكونات بسهولة.

ناهض قاعدة البيانات

يمكنك الدمج بسهولة مع أي قاعدة بيانات SQL أو NoSQL بناءً على احتياجاتك وتفضيلاتك عند العمل مع NestJS. يعد توصيل NestJS بقاعدة بيانات أمرًا بسيطًا للغاية ، حيث تحتاج فقط إلى تحميل برنامج تشغيل Node.js مناسب.

دعم المكتبات المختلفة

يتوافق NestJS مع العديد من الأدوات التي تربط تطوير التطبيقات. يدعم هذا الإطار التسجيل ، والتحقق من الصحة ، والتخزين المؤقت ، و WebSockets ، و TypeORM ، و Mongoose ، و GraphQL بدون أي تكوين إضافي.

هندسة وسير عمل NestJS

لدى NestJS بنية ثلاثية الطبقات تتكون من وحدات تحكم وموفرين ووحدات نمطية. وبالتالي يمكن للمطورين إنشاء كود نظيف لا يتداخل.

مصدر الصورة: betterprogramming

تحكم

تعمل وحدات التحكم في NestJS كجسر بين طلبات العملاء واستجاباتهم. ستقوم آلية التوجيه دائمًا بتوجيه الطلب إلى وحدة تحكم مناسبة كلما تم تقديم طلب HTTP. يستخدم الإطار مصممين وفئات لإنشاء وحدات تحكم. يتم بعد ذلك تعيين كل طريقة فئة إلى المسارات لتلقي طلب محدد.

الموفرون

يمكن وصف مقدمي الخدمة بأنهم أساسيات NestJS. يتم إدخال الموفرين على أنهم تبعيات وإنشاء علاقات بين الكائنات المختلفة. يمكن التعامل مع الفئات في NestJS ، مثل المساعدين أو الخدمات أو المستودعات ، كمقدمين بمجرد إضافة مصمم الديكور “Injectable ()”. يمكن أيضًا إدخال مثل هؤلاء المزودين في فئة من خلال المُنشئ ، وسيقوم NestJS بحل التبعيات.

الوحدات

تجمع وحدة في NestJS مجموعة من القدرات وثيقة الصلة. يحتوي كل تطبيق من تطبيقات NestJS على وحدة جذر تُستخدم كنقطة دخول. يُنصح بشدة باستخدام وحدات متعددة إذا كنت ترغب في الحصول على كود منظم وسهل القراءة. يحدد مصمم الديكور “Module () من Nest وحدة نمطية ويوفر أيضًا معلومات مثل التبعيات ووحدات التحكم والموفرين للتوافق مع هذه الوحدة.

الشروع في استخدام NestJS

تأكد من تثبيت Node.js و npm. أنت بحاجة إلى بيئة وقت تشغيل ، و Node.js مثالي لهذا الإعداد. أنت بحاجة إلى الإصدار> = 12 ، باستثناء الإصدار 13. يمكنك التحقق مما إذا كان لديك Node.js و npm مثبتين من خلال هذه الأوامر ؛

node -v
npm -v

إذا تم تثبيت كلاهما ، فستحصل على إخراج قريب من هذا

  ماذا يعني: فارغ يعني في كروم / فايرفوكس أو سفاري؟

إذا لم يكن لديك ، قم بتثبيتها من خلال الصفحة الرسمية. لحسن الحظ ، تم تثبيت كل من Node.js و npm معًا.

  • قم بتثبيت Nest CLI. استخدم الأوامر التالية لتعيين CLI والمشروع ؛
npm i -g @nestjs/cli
nest new project-name

نختار اسم المشروع ليكون mynestapp لأغراض توضيحية. يمنحك NestJS فرصة للعمل إما مع Typescript أو Vanilla JavaScript. حدد ما يناسبك واضغط على Enter. بمجرد أن يتم سقالة التطبيق ، سيتم إعداد بنية الملف ، وسيأتي مجلد “src” بالعديد من الملفات الأساسية ، كما هو موضح في لقطة الشاشة هذه

  • قم بتشغيل التطبيق / عالم الترحيب الأول الخاص بك

بمجرد اكتمال التثبيت ، قم بتشغيل هذه الأوامر لتشغيل خادم التطوير

cd mynestapp
npm run start

اكتب http: // localhost: 3000 / في متصفحك ويجب عرض “Hello World” على NestJs

NestJS: المزايا

  • سهل التعلم. من السهل إتقان NestJS ، خاصة إذا كنت من Angular أو لديك فهم عام لجافا سكريبت. تسهل الوثائق التفصيلية أيضًا إتقان العمل باستخدام إطار العمل القوي هذا.
  • مرن. يمكنك بناء الكثير من الأشياء باستخدام NestJS. يمكنك إنشاء تطبيقات MVC وتطبيقات GraphQL وواجهات برمجة تطبيقات RESTful ومآخذ ويب باستخدام إطار عمل Node.js هذا.
  • يأتي مع آلاف الوحدات. تسهل الوحدات المدعومة من المجتمع على المطورين هيكلة ميزات مختلفة أثناء إنشاء تطبيقات من جانب الخادم.
  • التطور السريع والعمارة الجيدة. لا يتعين عليك إنشاء كل شيء من البداية عند العمل مع NestJS. ومع ذلك ، يحتوي نفس الإطار على بنية صلبة لتسهيل فهم الكود الخاص بك.

NestJS: العيوب

  • غير مناسب لمن لديهم خلفيات TypeScript و Angular. يستعير NestJS كثيرًا من الهندسة المعمارية Angular ، وقد يستغرق أولئك الذين ليس لديهم مثل هذه المعرفة وقتًا لفهم البنية والبنية.
  • تفتقر في بعض المناطق. لا يزال NestJS شابًا وقد لا يتنافس بشكل إيجابي مع بعض الأطر الراسخة القائمة على Python و GO.

الشركات التي تستخدم NestJS

# 1. شركة اديداس

تعد شركة Adidas ، وهي شركة تصنيع ومصممة أحذية ، من بين الشركات التي تستخدم NestJS. لا بد أن الميزات المذهلة لـ NestJS قد جذبت عملاق الأحذية هذا لاستخدامه على واجهته الخلفية.

# 2. كابجيميني

Capgemini هي شركة فرنسية متعددة الجنسيات تقدم الاستشارات والتكنولوجيا والاستعانة بمصادر خارجية والخدمات المهنية. تستخدم هذه الشركة NestJS في مجموعتها التقنية.

# 3. روش

Roche هي شركة رعاية صحية متعددة الجنسيات لها قسمان ؛ الأدوية والتشخيص. تستخدم Roche NestJS كأحد مجموعات التكنولوجيا على موقعها الإلكتروني الرئيسي.

  كيفية تثبيت ثيم ماتشا على لينوكس

مصادر التعلم

# 1. NestJS Zero to Hero

يعلم NestJS Zero to Hero المطورين كيفية إنشاء ونشر تطبيقات المؤسسة الخلفية باستخدام Typescript و Node.js. تعلم الدورة كيفية إنشاء واجهات برمجة التطبيقات ، والتفويض والمصادقة ، واختبار الوحدة لتطبيقات Nest ، و TypeORM للتفاعل مع قاعدة البيانات ، من بين أشياء أخرى كثيرة.

# 2. NestJS: دليل المطور الكامل

تعلم هذه الدورة المطورين كيفية إنشاء واجهات برمجة تطبيقات خلفية باستخدام Nest و TypeScript و TypeORM. يحتوي هذا الدليل الكامل على كل ما تحتاجه بدءًا من إعداد ترميز تطبيق NestJS واختباره ونشره. ستحصل أيضًا على فهم من وراء الكواليس لإطار عمل ويب NestJS.

# 3. إتقان NestJS

يعلم Master NestJS كيفية تطوير تطبيقات Node.js على مستوى المؤسسات باستخدام TypeScript. تعلم الدورة التحقق من الصحة وتسلسل البيانات ، وكيفية عمل رموز JWT ، وكيفية استخدام NestCLI ، وتجريد قاعدة البيانات الحديثة ، من بين أشياء أخرى كثيرة.

# 4. NestJs في الممارسة (مع MongoDB)

يُعلمك تطبيق NestJS العملي كل ما تحتاج إلى معرفته حول NestJS ، من الوحدات النمطية ، ووحدات التحكم ، وخدمات الحراسة ، والأنابيب ، والبرمجيات الوسيطة. تأخذ الدورة التدريبية منهجًا قائمًا على المشروع حيث تقوم بتشفير واستضافة الكود الخاص بك على GitHub باستخدام ملفات مضغوطة قابلة للتنزيل لكل قسم.

# 5. Nest.js: إطار عمل Node.js التقدمي

يقدم هذا الكتاب معلومات للمطورين عن NestJS وكيفية الاستفادة من JavaScript و TypeScript. تم تصميم الكتاب بتنسيق إرشادي للتأكد من أنه يمكنك إعداد وتشغيل تطبيق NestJS الخاص بك في أي وقت من الأوقات.

# 6. Nest.js العملية: تطوير تطبيقات ويب MVC نظيفة

يستخدم كتاب Nest.js العملي منهجًا قائمًا على المشروع لإنشاء تطبيق متجر عبر الإنترنت يستخدم ميزات NestJS المختلفة. يتضمن الكتاب مناقشات قصيرة ونصائح وعبارات مفيدة عند إنشاء تطبيق NestJS الخاص بك.

استنتاج

بصرف النظر عن كونه إطار عمل Node.js قويًا ، يعد NestJS أيضًا أحد أكثر أطر عمل Typescript شيوعًا للتطبيقات من جانب الخادم اليوم. حقيقة أنه يقدم أفضل ممارسات الترميز وبنية تطوير قياسية جعلته يجتذب الكثير من المهندسين الذين يرغبون في التركيز على بناء منطق الأعمال عند إنشاء التطبيقات.