2021 ۾، جاوا اسڪرپٽ سڀ کان وڌيڪ استعمال ٿيل پروگرامنگ ٻولي هئي.
هن ٽيڪنالاجي جي اپيل ناقابل ترديد آهي، جيئن ته وڏي تعداد ۾ فريم ورڪ پاران ڏٺو ويو آهي جيڪي جاوا اسڪرپٽ پروگرامنگ کي فعال ڪن ٿا.
فرنٽ اينڊ تي Angular، React ۽ Vue آهن، انهي سان گڏ ايڪسپريس ۽ اڳيون پسمنظر تي، ڪجهه ذڪر ڪرڻ لاءِ.
جاوا اسڪرپٽ ۾ پس منظر پروگرامنگ لاءِ تمام گھڻا شاندار فريم ورڪ سان، توھان شايد سوچي رھيا ھجو ته مان صرف ايڪسپريس يا اڳيون استعمال ڪرڻ بجاءِ ڪجھ مختلف ڳولھيندس.
ٿي سگهي ٿو ته توهان کي هڪ مهذب بوائلر پليٽ سان جلدي ترقي جي عمل کي شروع ڪرڻ جي ضرورت آهي، ۽ دستي طور تي نه صرف نوان ڪنٽرولرز شامل ڪرڻ پر خدمتون پڻ توهان کي بيمار بڻائي ٿي.
يا توهان ٺاهڻ چاهيو ٿا وڏو، اسپيبلبل سافٽ ويئر جيڪو منظم ڪرڻ آسان آهي. يا شايد توهان صرف وڌيڪ موثر ۽ آسان طريقي سان ڪم ڪرڻ چاهيندا آهيو.
ان کان سواءِ جيڪو توهان جي حالتن ۾ صحيح آهي، Nest.js ٿي سگهي ٿو توهان جي ضرورتن لاءِ ڀرپور حل.
هي پوسٽ مهيا ڪندي NestJS بصيرت سان گڏو گڏ هٿ تي تجربو.
NestJS ڇا آهي؟
NestJS ھڪڙو ترقي پسند نوڊ فريم ورڪ آھي جيڪو کليل ذريعو، وسعت وارو، ۽ قابل اطلاق آھي .جي ايس تعمير، مشغول ۽ مشڪل پس منظر سسٽم لاء فريم ورڪ. اهو هاڻي آهي نوڊ تيز ترين ترقي جي شرح سان.
js لاءِ ٽائپ اسڪرپٽ فريم ورڪ. NestJS ايپليڪيشنون ٺاهڻ لاءِ استعمال ڪيو ويندو آهي جيڪي اسپيبلبل، ٽيسٽبل، ۽ لوز سان ڳنڍيل آهن.
اهو نوڊ ڏانهن اسپيبلٽي شامل ڪري ٿو. جي ايس سرورز کي مڪمل نئين سطح تي ورتو ويو آھي. PostgreSQL، MongoDB، ۽ MySQL انهن ڊيٽابيسن مان آهن جن جي حمايت ڪئي وئي آهي.
NestJS قابل توسیع آهي ڇاڪاڻ ته اهو ٻين لائبريرين سان استعمال ڪري سگهجي ٿو؛ لچڪدار ڇاڪاڻ ته ان جي موافقت مڪمل طور تي ترقي يافته ماحولياتي نظام جي ڪري. ۽ ترقي پسند ڇو ته اها جاوا اسڪرپٽ جي خاصيتن ۽ ڊيزائن جي اصولن کي سپورٽ ڪري ٿي.
اهو بنيادي طور تي Angular، React، ۽ Vue کان متاثر ٿئي ٿو ۽ تعمير ٿيل انحصار انجيڪشن سان گڏ اچي ٿو.
مضمونن جي
- اهو استعمال ڪرڻ، سکڻ، ۽ ماسٽر ڪرڻ آسان آهي.
- اهو مفت آهي ۽ کليل ذريعو (MIT لائسنس)
- طاقتور ڪمان لائن انٽرفيس (CLI) پيداوار وڌائڻ ۽ ترقي جي سادگي لاءِ
- يونٽ-ٽيسٽنگ پروگرام جيڪي استعمال ڪرڻ آسان آهن
- ٽائپ اسڪرپٽ، هڪ مضبوط ٽائپ ڪيل ٻولي جيڪا جاوا اسڪرپٽ جو هڪ سپر سيٽ آهي، استعمال ڪيو ويندو آهي.
- هڪ فعال ڪوڊ بيس جي ترقي ۽ سار سنڀال.
- سوين اينسٽ-مخصوص ماڊلز لاءِ سپورٽ جيڪي مشهور ٽيڪنالاجيز ۽ خيالن سان انٽرفيس ڪرڻ کي آسان بڻائين ٿيون جهڙوڪ TypeORM، Mongoose، GraphQL، لاگنگ، تصديق، ڪيشنگ، WebSockets، ۽ وڌيڪ.
NestJS جا بلڊنگ بلاڪ ڇا آهن؟
Nest ايپليڪيشنن جا بلڊنگ اجزاء ھيٺ ڏنل آھن. ٻيا به آهن، پر اهي ٽي سڀ کان اهم آهن. اچو ته انهن تي جلدي هڪ نظر رکون.
1. ڪنٽرولرز
ڪنٽرولرز ايندڙ درخواستن جي پروسيسنگ ۽ گراهڪن کي جواب ڏيڻ جا انچارج آهن. اهو خاص HTTP درخواستون وصول ڪري ٿو، ۽ روٽنگ سسٽم اهو طئي ڪري ٿو ته ڪهڙو ڪنٽرولر ڪهڙي درخواست حاصل ڪري ٿو.
اهو پوءِ موڪلڻ لاءِ هڪ مناسب جواب تيار ڪري ٿو. طبقن ۽ سجاڳيءَ جي مدد سان، ھڪڙو سادو ڪليڪٽر ٺاھيو ويو آھي ۽ ھر ھڪ ڪنٽرولر وٽ مختلف ڪم ڪرڻ لاءِ پنھنجون رستا آھن.
2. مهيا ڪندڙ
Nest ۾ مهيا ڪندڙ هڪ اهم خيال آهن. بنيادي Nest طبقن مان ڪيترائي - خدمتون، مخزن، ڪارخانا، مددگار، ۽ پوءِ - مهيا ڪندڙ طور سنڀالي سگھجن ٿا.
هڪ مهيا ڪندڙ جو بنيادي تصور اهو آهي ته اهو هڪ انحصار جي طور تي انجيل ٿي سگهي ٿو؛ ان جو مطلب اهو آهي ته شيون هڪ ٻئي سان مختلف تنظيمون ٺاهي سگهن ٿيون، ۽ شيون جي "وائرنگ اپ" مثالن جو ڪردار خاص طور تي Nest رن ٽائم سسٽم ڏانهن ٻاهر نڪري سگهجي ٿو.
3. ماڊل
ھڪڙو ماڊيول ھڪڙو ڪلاس آھي @Module() سجاڳي سان جيڪو ايپليڪيشن جي جوڙجڪ جي اجزاء کي منظم ڪري ٿو. هر ايپليڪيشن ۾ هڪ روٽ ماڊل هوندو آهي جيڪو استعمال ڪيو ويندو آهي ايپليڪيشن گراف کي ٺاهڻ لاءِ، جيڪو وڌيڪ حل ڪري ٿو انحصار ۽ رابطي کي فراهم ڪندڙ ۽ ماڊل جي وچ ۾.
هي سجاڳي ڪندڙ Nest.js کي ميٽا ڊيٽا ڏئي ٿو ته جيئن ان جي سڃاڻپ ڪري سگهجي ته ايپليڪيشن ڪوڊ ۾ ڪهڙا حصا، ڪنٽرولر، يا ٻيا وسيلا استعمال ڪيا ويندا ۽ انهن کي هڪ واحد سيٽ ۾ گڏ ڪيو ويندو.
هر ماڊل ۾ صلاحيتن جو هڪ مجموعو آهي جيڪي ڪنهن طريقي سان ڳنڍيل آهن.
NestJS سان شروع ڪرڻ
1. لڳائڻ
اچو ته انسٽال ڪريون NestJS ۽ ان سان هڪ پروجيڪٽ ٺاهيو انهن قدمن تي عمل ڪندي:
ھن جي نتيجي ۾ ھيٺ ڏنل ڊاريڪٽري جي جوڙجڪ ٺاھي ويندي:
2. ڪنٽرولرز
Nest جي عمارت جا بلاڪ ڪنٽرولر آهن. اهي جڳهيون آهن جتي اندريون درخواستون هٿ ڪيون وينديون. توھان وضاحت ڪري سگھوٿا روٽ جو رستو HTTP ميٿڊ موڊيفائرز (Get, Post, Put, Delete, and so on) decorators استعمال ڪندي، جيئن ھيٺ ڏنل ڪوڊ ۾ ڏٺو ويو آھي.
Nestjs سجاڳي واري طريقي کي استعمال ڪري ٿو ۽ گهڻو ڪري ٽائپ اسڪرپٽ ۾ ترقي ڪئي وئي آهي، جيتوڻيڪ اهو پڻ JavaScript کي سپورٽ ڪري ٿو. توھان پڻ استعمال ڪري سگھو ٿا ڪلاس جي تصديق ڪندڙ کي درست ڪرڻ لاءِ درخواست جي جسم کي.
مان صرف هڪ Nestjs سرور مثال ٺاهڻ وارو آهيان ۽ عالمي سطح تي ValidationPipe شامل ڪرڻ وارو آهيان. پائپ صرف طريقا آھن جيڪي ڪنٽرولرز کان اڳ عمل ڪن ٿا. پائپس پڻ لاڳو ڪري سگھجن ٿا طريقن/دليل جي سطح تي استعمال ڪندي @UsePipes decorator.
3. مهيا ڪندڙ
مهيا ڪندڙ Nestjs جو هڪ ٻيو اهم حصو آهن. پري تائين، مان ڊيٽا کي عارضي متغير ۾ محفوظ ڪري رهيو هوس. اهو ئي سبب آهي ته اهڙي سادي ڪم کي ڪنٽرولر هينڊلر استعمال ڪندي مڪمل ڪري سگهجي ٿو.
بهرحال، وڏي لاءِ، وڌيڪ پيچيده منطق، ڪوڊ علحدگيءَ ۽ ٻيهر استعمال ڏکيو هوندو. اهو تڏهن آهي جڏهن سپلائرز اندر اچن ٿا. توهان @Injectable decorator استعمال ڪندي ڪلاس جي مٿان هڪ فراهم ڪندڙ جو اعلان/ٺاهي سگهو ٿا. پوء، مهيا ڪندڙن کي استعمال ڪندي، توھان ڪري سگھو ٿا انحصار انجڻ، لاگنگ، ۽ ٻيا ڪم.
4. ماڊل
Nestjs ماڊل عالمي نه آهن؛ ان جي بدران، انهن جي کوٽائي آهي.
تنهن هوندي به، ان سان گڏو گڏ ڪنهن ٻئي ماڊلز سان حصيداري ڪري سگهجي ٿو. جيتوڻيڪ اهو، Angular وانگر، گلوبل ماڊلز پيش ڪري ٿو، اهو وڌيڪ مشورو آهي ته خدمتون/ڪنٽرولرز کي ماڊل ۾ رکڻ لاء، جتي اهي عام طور تي Nestjs ۾ استعمال ڪيا ويندا آهن.
NestCLI اڪثر وقت ماڊلز پيدا ڪرڻ لاءِ استعمال ڪيو ويندو آھي، ۽ ان ماڊيول جي حوالي سان پيدا ڪيل مهيا ڪندڙ/ڪنٽرولر پاڻمرادو CLI پاران شامل ڪيا ويندا آھن. اهي خاصيتون ماڊل طور سڃاتل آهن.
5. استثنا فلٽر
استثنا فلٽر آهن غلطي سنڀاليندڙ جيڪي سڏيا ويندا آهن جڏهن هڪ ڪنٽرولر هڪ استثنا اڇلائي ٿو. اهو خودڪار طريقي سان مسئلو کي منظم ڪري ٿو ۽ هڪ مناسب، صارف-دوست غلطي پيغام پهچائي ٿو.
ڪيترائي HttpException ورثي ۾ مليل استثنا پيڪيج @nestjs/common پاران مهيا ڪيا ويا آهن، بشمول NotFoundException، BadRequestException، NotAcceptableException، UnauthorizedException، ۽ ٻيا ڪيترائي. توھان پڻ ٺاھي سگھو ٿا پنھنجو ExceptionFilter.
6. وچولي
هڪ فنڪشن جيڪو روٽ هينڊلر کان اڳ سڏيو ويندو آهي مڊل ويئر سڏيو ويندو آهي. درخواست ۽ جوابي شيون، گڏوگڏ ايندڙ () مڊل ويئر فنڪشن ايپليڪيشن جي درخواست-جواب واري چڪر ۾، وچولي ويئر افعال تائين رسائي لائق آھن.
هڪ متغير جنهن کي ايندڙ سڏيو ويندو آهي عام طور تي استعمال ڪيو ويندو آهي ايندڙ مڊل ويئر فنڪشن کي سڃاڻڻ لاءِ. Custom Nest Middleware کي @Injectable() decorator استعمال ڪندي طريقي يا ڪلاس ۾ لاڳو ڪري سگھجي ٿو.
7. گارڊز
گارڊ صرف هڪ شيء لاء ذميوار آهن. اهو انهن جي ذميواري آهي انهي جو اندازو لڳائڻ ته ڇا هڪ درخواست تي عمل ڪيو ويندو ڪنٽرولر طرفان مخصوص حالتن جي بنياد تي (خاص طور تي، صارف جي وضاحت ڪيل منطق).
اهو مددگار آهي تصديق / اختيار ڏيڻ ۽ Nestjs ۾ تجويز ڪيل طريقو آهي.
جيتوڻيڪ تصديق/اجازت وغيره، وچولي ويئر استعمال ڪندي ٿي سگهي ٿي، اهو ايڪسپريس يا ٻين HTTP سرورن ۾ نه ڪيو ويو آهي ڇاڪاڻ ته انهن وٽ ڪو لاڳاپيل مضبوط حوالو نه آهي ۽ اهو ڄاڻڻ جو ڪو سبب ناهي ته درخواست تي عمل ڪرڻ لاءِ ڪهڙو طريقو استعمال ڪيو ويندو.
فائدن
- فريم ورڪ تمام گھڻو ڀروسو آھي تشريح تي، جيڪي استعمال ڪيا ويندا آھن ڪجھ پيدا ڪرڻ لاءِ آخري پوائنٽن کان وٺي Swagger دستاويزن تائين. آخر پوائنٽ بنيادي ۽ صاف آهن، ۽ تشريحون عام طور تي ترقي کي آسان بڻائي ٿي.
- عام مقصد جي ماڊلز کي ٻاهرين بڻائڻ ۽ ڪيترن ئي پروجيڪٽن ۾ ڪوڊ ٻيهر استعمال ڪرڻ آسان آهي ڇاڪاڻ ته Nest.js هڪ ماڊل تي ٻڌل فريم ورڪ آهي.
- Nest.js جي فولڊر جي جوڙجڪ خاص طور تي Angular کان متاثر ٿيل آهي. جڏهن هڪ Nest سروس ٺاهيندي، اها اجازت ڏئي ٿي گهٽ ۾ گهٽ وقت جي.
- اجزاء جون پنهنجون ڊائريڪٽريون آهن، روٽ سان گڏ ايپليڪيشن ماڊل ۽ مکيه فائل. ساخت جي سادگي جي ڪري، ايپليڪيشن جي ڍانچي جي بجاءِ آخري پوائنٽس ۽ انهن جي گراهڪن جي ڊيزائن تي وڌيڪ ڌيان ڏئي سگهجي ٿو.
- Nest، Angular وانگر، پيش ڪري ٿو سٺو ڪمانڊ لائين ٽول، Nestjs/cli، جيڪو دستياب آهي نوڊ پيڪيج مئنيجر ذريعي.
وڌڻ
- TypeScript استعمال ۽ Angular integration جي لحاظ کان Nest کي فائدو آھي، پر ان ۾ ھڪڙي وڏي ڪارپوريشن جي مالي مدد جي کوٽ آھي.
- دستاويزن جي کوٽ Nest استعمال ڪندڙن لاءِ سڀ کان وڏو خطرو آهي. جيتوڻيڪ فريم ورڪ ۾ ٻين فريم ورڪ سان بهترين لاڳاپا آهن، دستاويز تمام گهٽ آهي ۽ ڪنهن به امڪاني مشڪلاتن کي حل نٿو ڪري.
- Nest هڪ فائدو آهي TypeScript استعمال ۽ Angular جي لحاظ کان.
ٿڪل
NestJS ڊولپرز کي وڏي ٽنگ سان مهيا ڪري ٿي. ترقي شروع ڪرڻ لاء، توهان سڀني کي ڪرڻو آهي هڪ نئين ايپ ٺاهيو ۽ توهان وڃڻ لاءِ سٺو آهيو. هي فريم ورڪ سڌو سنئون هڪ اهم واڌارو فراهم ڪري ٿو، جڏهن ته هڪ مناسب ايپ آرڪيٽيڪچر قائم ڪندي اضافي مرحلن کي کڻڻ ۾ توهان جي مدد پڻ ڪري ٿي.
اهو استعمال ڪري ٿو جديد طريقن ۽ ٽيڪنالاجي جو استعمال ايپليڪيشنون پيدا ڪرڻ لاءِ جيڪي ٻئي منظم ۽ ڊگهي عرصي وارا آهن. اهو استعمال ڪري سگهجي ٿو GraphQL، WebSockets سان ڳنڍڻ، ۽ مائڪرو سروسز ٺاهڻ لاءِ.
جواب ڇڏي وڃو