په 2021 کې ، جاواسکریپټ ترټولو پراخه کارول شوې برنامې ژبه وه.
د دې ټیکنالوژۍ اپیل د انکار وړ نه دی، لکه څنګه چې د پراخ شمیر چوکاټونو لخوا لیدل کیږي چې د جاواسکریپټ پروګرام کولو توان لري.
په مخکینۍ برخه کې زاویه ، عکس العمل ، او ویو شتون لري ، په بیله بیا په شاته کې ایکسپریس او نیکسټ ، د یو څو ذکر کولو لپاره.
په جاواسکریپټ کې د بیک انډ برنامه کولو لپاره د ډیری عالي چوکاټونو سره د لاسرسي وړ ، تاسو شاید فکر کوئ چې ولې زه به د ساده ایکسپریس یا Next کارولو پرځای یو څه مختلف لټون وکړم.
شاید تاسو اړتیا لرئ د ښه بویلر پلیټ سره د پراختیا پروسه ګړندي پیل کړئ ، او په لاسي ډول نه یوازې نوي کنټرولرونه اضافه کول بلکه خدمات هم تاسو ناروغ کوي.
یا تاسو غواړئ لوی، د توزیع وړ سافټویر رامینځته کړئ چې اداره کول یې ساده دي. یا شاید تاسو په ساده ډول غواړئ په ډیر اغیزمن او مناسب ډول کار وکړئ.
پرته لدې چې ستاسو په شرایطو کې ریښتیا وي ، Nest.js ستاسو د اړتیاو لپاره مناسب حل کیدی شي.
دا پوسټ به د NestJS بصیرت او همدارنګه د لاسونو تجربه چمتو کړي.
NestJS څه شی دی؟
NestJS یو پرمختللی نوډ چوکاټ دی چې خلاص سرچینه، د پراختیا وړ، او د تطبیق وړ ده .Js د بیک انډ سیسټمونو جوړولو، ښکیلتیا او ننګونې لپاره چوکاټ. دا اوس د ګړندۍ ودې نرخ سره نوډ دی.
د js لپاره د ټایپ سکریپټ چوکاټ. NestJS د غوښتنلیکونو رامینځته کولو لپاره کارول کیږي چې د توزیع وړ ، د ازموینې وړ او په نرمۍ سره وصل وي.
دا نوډ ته توزیع اضافه کوي. د Js سرورونه په بشپړ ډول نوي کچې ته وړل شوي. PostgreSQL، MongoDB، او MySQL د ملاتړ شوي ډیټابیسونو څخه دي.
NestJS د توزیع وړ دی ځکه چې دا د نورو کتابتونونو سره کارول کیدی شي؛ انعطاف وړ د دې د تطبیق وړ بشپړ اکوسیستم له امله. او پرمختللی ځکه چې دا د جاواسکریپټ ځانګړتیاو او ډیزاین اصولو ملاتړ کوي.
دا په ابتدايي توګه د Angular، React، او Vue لخوا اغیزمن کیږي او د جوړ شوي انحصار انجیکشن سره راځي.
برخی
- دا د کارولو، زده کولو او ماسټر کولو لپاره ساده دی.
- دا وړيا او د پرانستې-سرچینې (د MIT جواز)
- د ځواکمن کمانډ لاین انٹرفیس (CLI) د تولید زیاتوالي او پراختیا سادگي لپاره
- د واحد ازموینې پروګرامونه چې کارول یې ساده دي
- ټایپ سکریپټ، یوه سخته ټایپ شوې ژبه چې د جاوا سکریپټ سپر سیټ دی، کارول کیږي.
- د فعال کوډبیس پراختیا او ساتنه.
- د سلګونو نیسټ ځانګړي ماډلونو لپاره ملاتړ چې د مشهور ټیکنالوژیو او نظرونو لکه TypeORM، Mongoose، GraphQL، logging، validation، caching، WebSockets، او نور ډیر څه سره انٹرفیس کول ساده کوي.
د NestJS د جوړولو بلاکونه کوم دي؟
د Nest غوښتنلیکونو ساختماني برخې لاندې لیست شوي دي؛ نور هم شتون لري، مګر دا درې خورا مهم دي. راځئ چې دوی په چټکۍ سره وګورو.
1. کنټرولونکي
کنټرولر د راتلونکو غوښتنو پروسس کولو او پیرودونکو ته د ځواب ویلو مسؤل دي. دا ځانګړي HTTP غوښتنې ترلاسه کوي، او د روټینګ سیسټم مشخص کوي چې کوم کنټرولر کومه غوښتنه ترلاسه کوي.
دا بیا د لیږلو لپاره مناسب ځواب مسوده کوي. د ټولګیو او سینګار کونکو په مرسته ، یو ساده راټولونکی رامینځته شوی او هر کنټرولر د مختلف کارونو ترسره کولو لپاره خپل د لارو سیټ لري.
2. برابرونکي
چمتو کونکي په Nest کې کلیدي نظر دی. د Nest ډیری اصلي ټولګي - خدمات، ذخیره، فابریکې، مرستندویان، او داسې نور - د چمتو کونکي په توګه اداره کیدی شي.
د چمتو کونکي بنسټیز نظر دا دی چې دا د انحصار په توګه انجیکشن کیدی شي؛ دا پدې معنی ده چې توکي کولی شي د یو بل سره مختلفې اتحادیې رامینځته کړي ، او د شیانو د "ویرنګ اپ" مثالونو رول په عمده ډول د Nest د چلولو سیسټم ته بهر کیدی شي.
3. ماډلونه
ماډل د @Module() ډیکوریټر سره یو ټولګی دی چې د غوښتنلیک جوړښت اجزا تنظیموي. هر غوښتنلیک د روټ ماډل لري چې د غوښتنلیک ګراف جوړولو لپاره کارول کیږي، کوم چې د چمتو کونکي او ماډل تر مینځ انحصار او تعامل نور هم حل کوي.
دا سینګار کوونکی Nest.js ته میټاډاټا ورکوي ترڅو وپیژندل شي چې کوم برخې ، کنټرولرونه ، یا نورې سرچینې به د غوښتنلیک کوډ کې کارول کیږي او په یو واحد سیټ کې یې یوځای کوي.
هر ماډل د وړتیاوو ټولګه لري چې په یو ډول سره تړلي دي.
د NestJS سره پیل کول
1. نصب
راځئ چې NestJS نصب کړو او د دې مرحلو په تعقیب سره یې پروژه جوړه کړو:
لاندې لارښود جوړښت به د دې په پایله کې رامینځته شي:
2. کنټرولونکي
د Nest ودانۍ بلاکونه کنټرولونکي دي. دا هغه ځایونه دي چیرې چې داخلي غوښتنې به اداره شي. تاسو کولی شئ د HTTP میتود ترمیم کونکي (ترلاسه کړئ ، پوسټ کړئ ، واچوئ ، حذف کړئ ، او داسې نور) ډیکورټرونو په کارولو سره د لارې لاره مشخص کړئ ، لکه څنګه چې لاندې کوډ کې لیدل شوي.
Nestjs د سینګار کولو طریقه کاروي او ډیری یې په ټایپ سکریپټ کې رامینځته شوي، که څه هم دا جاواسکریپټ هم ملاتړ کوي. تاسو کولی شئ د غوښتنې بدن اعتبار کولو لپاره د ټولګي اعتبار کونکی هم وکاروئ.
زه یوازې د Nestjs سرور مثال جوړوم او په نړیواله کچه ValidationPipe اضافه کوم. پایپونه یوازې هغه میتودونه دي چې د کنټرولرانو دمخه اجرا کوي. پایپونه د @UsePipes ډیکوریټر په کارولو سره د میتود/ دلیل په کچه هم پلي کیدی شي.
3. برابرونکي
چمتو کونکي د Nestjs بله مهمه برخه ده. تر اوسه پورې، زه په لنډمهاله متغیر کې ډاټا ذخیره کوم. له همدې امله دا ډول ساده دنده د کنټرولر هینډلرونو په کارولو سره ترسره کیدی شي.
په هرصورت، د لوی، ډیر پیچلي منطق لپاره، د کوډ جلا کول او بیا کارول به ستونزمن وي. دا هغه وخت دی کله چې عرضه کونکي راشي. تاسو کولی شئ د @ انجیکشن وړ سینګار کونکي په کارولو سره د ټولګي په سر کې یو چمتو کونکی اعلان / جوړ کړئ. بیا، د چمتو کونکو په کارولو سره، تاسو کولی شئ د انحصار انجیکشن، ننوتل، او نور کارونه ترسره کړئ.
4. ماډلونه
د Nestjs ماډلونه نړیوال ندي؛ پرځای یې، دوی ژوره لري.
په هرصورت، دا د نورو ماډلونو سره هم شریک کیدی شي. که څه هم دا، د انګولر په څیر، نړیوال ماډلونه وړاندې کوي، دا ډیره مشوره ده چې خدمات / کنټرولر په ماډل کې وساتئ چیرې چې دوی په عام ډول په Nestjs کې کارول کیږي.
NestCLI ډیری وخت د ماډلونو تولید لپاره کارول کیږي، او د دې ماډل په شرایطو کې چمتو کونکي/کنټرولرونه په اتوماتيک ډول د CLI لخوا اضافه کیږي. دا د فیچر ماډلونو په نوم پیژندل کیږي.
5. استثنایی فلټرونه
د استثنا فلټرونه د خطا سمبالونکي دي چې غوښتل کیږي کله چې کنټرولر یو استثنا وغورځوي. دا په اوتومات ډول مسله اداره کوي او یو مناسب ، د کارونکي دوستانه خطا پیغام وړاندې کوي.
ډیری HttpException میراثي استثناوې د بسته @nestjs/common لخوا چمتو شوي، پشمول NotFoundException، BadRequestException، NotAcceptableException، UnauthorizedException، او ډیری نور. تاسو حتی کولی شئ خپل استثنایی فلټر ډیزاین کړئ.
6. منځنی
یو فنکشن چې د روټ هینډلر څخه دمخه غوښتل شوی وي د مینځنی ویر په نوم یادیږي. د غوښتنې او غبرګون توکي، په بیله بیا د غوښتنلیک د غوښتنې ځواب دوره کې د راتلونکي() د منځني ویئر فنکشن، د منځني وییر فعالیتونو ته د لاسرسي وړ دي.
یو متغیر چې د next په نوم یادیږي په عموم ډول د راتلونکي مینځني فعالیت پیژندلو لپاره کارول کیږي. Custom Nest Middleware د @Injectable() decorator په کارولو سره په میتود یا ټولګي کې پلي کیدی شي.
7. ساتونکي
ساتونکي یوازې د یو شی لپاره مسؤل دي. دا د دوی مسؤلیت دی چې دا ارزونه وکړي چې ایا غوښتنه به د کنټرولر لخوا د ځانګړو شرایطو (په ځانګړي ډول د کارونکي لخوا تعریف شوي منطق) پراساس پروسس شي یا نه.
دا د تصدیق / اجازه ورکولو لپاره ګټور دی او په Nestjs کې وړاندیز شوی میتود دی.
که څه هم تصدیق/اجازې، او نور، د منځني وییر په کارولو سره ترسره کیدی شي، دا په ایکسپریس یا نورو HTTP سرورونو کې نه ترسره کیږي ځکه چې دوی اړوند قوي شرایط نلري او هیڅ دلیل نلري چې پوه شي چې کومه طریقه به د غوښتنې پروسس کولو لپاره وکارول شي.
ګټي
- چوکاټ په پراخه کچه په تشریحاتو تکیه کوي، کوم چې د پای ټکی څخه د سویګر اسنادو ته د هر څه تولید لپاره کارول کیږي. پای ټکي بنسټیز او پاک دي، او تشریحات په عمومي توګه پراختیا اسانه کوي.
- دا ساده ده چې د عمومي هدف ماډلونه بهر کړئ او په ډیری پروژو کې کوډ بیا وکاروئ ځکه چې Nest.js د ماډل پراساس چوکاټ دی.
- د Nest.js فولډر جوړښت د پام وړ د Angular لخوا اغیزمن شوی. کله چې د Nest خدمت ډیزاین کړئ، دا د لږترلږه وخت لپاره اجازه ورکوي.
- اجزاوې خپل لارښودونه لري، د ریټ سره چې د غوښتنلیک ماډل او اصلي فایل لري. د جوړښت د سادګۍ له امله، د غوښتنلیک جوړښت پر ځای د پای ټکي ډیزاین او د دوی پیرودونکو ته ډیره پاملرنه کیدی شي.
- Nest، لکه Angular، د ښه کمانډ لاین وسیله وړاندې کوي، Nestjs/cli، کوم چې د نوډ بسته مدیر له لارې شتون لري.
زيانونه
- Nest د ټایپ سکریپټ کارولو او زاویه ادغام شرایطو کې ګټه لري ، مګر دا د لوی شرکت مالي ملاتړ نلري.
- د اسنادو نشتوالی د Nest کاروونکو لپاره ترټولو لوی ګواښ دی. که څه هم چوکاټ د نورو چوکاټونو سره خورا ښه تعامل لري، اسناد لږ دي او کوم احتمالي ستونزې نه حل کوي.
- Nest د TypeScript کارولو او Angular شرایطو کې ګټه لري.
پایله
NestJS پراختیا کونکو ته د لوی پښې پورته کولو سره چمتو کوي. د پرمختګ پیل کولو لپاره، ټول هغه څه چې تاسو یې کولو ته اړتیا لرئ یو نوی اپلیکیشن جوړ کړئ او تاسو ښه یاست چې لاړ شئ. دا چوکاټ سمدلاسه د پام وړ وده چمتو کوي ، پداسې حال کې چې تاسو سره د مناسب اپلیکیشن جوړښت رامینځته کولو سره اضافي مرحلو ته رسیدو کې هم مرسته کوي.
دا د غوښتنلیکونو تولید لپاره د عصري میتودونو او ټیکنالوژۍ څخه کار اخلي چې دواړه د مدیریت وړ او اوږدمهاله وي. دا د GraphQL، WebSockets سره وصل کولو او د مایکرو خدماتو جوړولو لپاره کارول کیدی شي.
یو ځواب ورکړئ ووځي