በ2021 ጃቫ ስክሪፕት በብዛት ጥቅም ላይ የዋለው የፕሮግራም አወጣጥ ቋንቋ ነበር።
ጃቫ ስክሪፕት ፕሮግራሚንግ በሚያደርጉት እጅግ በጣም ብዙ ማዕቀፎች እንደታየው የዚህ ቴክኖሎጂ ማራኪነት አይካድም።
ጥቂቶቹን ለመጥቀስ በፊተኛው ጠርዝ ላይ Angular, React እና Vue እንዲሁም Express እና Next በኋለኛው በኩል ይገኛሉ።
በጃቫ ስክሪፕት ለጀርባ ፕሮግራሚንግ እጅግ በጣም ብዙ ድንቅ ማዕቀፎች ባሉበት፣ በቀላሉ Express ወይም Nextን ከመጠቀም ይልቅ ለምን የተለየ ነገር እንደምፈልግ እያሰቡ ይሆናል።
ጥሩ በሆነ የቦይለር ሰሌዳ አማካኝነት የእድገት ሂደቱን በፍጥነት መዝለል ያስፈልግዎታል ፣ እና በእጅ አዲስ መቆጣጠሪያዎችን ብቻ ሳይሆን አገልግሎቶችን ማከል ህመም ያስከትላል።
ወይም ለማስተዳደር ቀላል የሆነ ትልቅ፣ ሊሰፋ የሚችል ሶፍትዌር መፍጠር ይፈልጋሉ። ወይም በቀላሉ ይበልጥ ቀልጣፋ እና ምቹ በሆነ መንገድ ለመሥራት ትፈልጉ ይሆናል።
በእርስዎ ሁኔታ ውስጥ የትኛውም እውነት ቢሆን፣ Nest.js ለፍላጎትዎ ፍጹም መፍትሄ ሊሆን ይችላል።
ይህ ልጥፍ NestJS ግንዛቤዎችን እና እንዲሁም የተግባር ተሞክሮዎችን ያቀርባል።
NestJS ምንድን ነው?
NestJS ክፍት ምንጭ፣ ሊሰፋ የሚችል እና የሚለምደዉ ተራማጅ የመስቀለኛ ክፍል ነው። .ጄ.ኤስ የበስተጀርባ ስርዓቶችን ለመገንባት, አሳታፊ እና ፈታኝ ማዕቀፍ. አሁን በጣም ፈጣን የእድገት መጠን ያለው መስቀለኛ መንገድ ነው።
የጽሕፈት ጽሕፈት ማዕቀፍ ለ js. NestJS ሊለኩ የሚችሉ፣ ሊሞከሩ የሚችሉ እና በቀላሉ የተገናኙ መተግበሪያዎችን ለመፍጠር ይጠቅማል።
መስቀለኛ መንገድን ይጨምራል። Js አገልጋዮች ወደ አዲስ ደረጃ ተወስደዋል። PostgreSQL፣ MongoDB እና MySQL ከሚደገፉ የውሂብ ጎታዎች መካከል ናቸው።
NestJS extensible ነው ምክንያቱም ከሌሎች ቤተ መጻሕፍት ጋር መጠቀም ይቻላል; ተለዋዋጭ በሆነው ሙሉ ለሙሉ ተስማሚ ሥነ-ምህዳር ስላለው። የጃቫ ስክሪፕት ባህሪያትን እና የንድፍ መርሆዎችን ስለሚደግፍ ተራማጅ።
በዋነኛነት በAngular፣ React እና Vue ተጽዕኖ ይደረግበታል እና አብሮ ከተሰራ የጥገኝነት መርፌ ጋር አብሮ ይመጣል።
ዋና መለያ ጸባያት
- ለመጠቀም፣ ለመማር እና ለማስተማር ቀላል ነው።
- ነፃ ነው እና ክፍት ምንጭ (MIT ፍቃድ)
- ኃይለኛ የትእዛዝ መስመር በይነገጽ (CLI) ለበለጠ ምርታማነት እና ቀላልነት
- ለመጠቀም ቀላል የሆኑ የዩኒት ሙከራ ፕሮግራሞች
- ታይፕ ስክሪፕት፣ የጃቫ ስክሪፕት ከፍተኛ ስብስብ የሆነ በጥብቅ የተተየበ ቋንቋ ጥቅም ላይ ይውላል።
- የነቃ ኮድ ቤዝ ልማት እና ጥገና።
- እንደ TypeORM፣ Mongoose፣ GraphQL፣ Logging፣ ማረጋገጫ፣ መሸጎጫ፣ ዌብሶኬት እና ሌሎች ካሉ ታዋቂ ቴክኖሎጂዎች እና ሃሳቦች ጋር መገናኘትን ቀላል ለሚያደርጉ በመቶዎች ለሚቆጠሩ ጎጆ-ተኮር ሞጁሎች ድጋፍ።
የNestJS ግንባታ ብሎኮች ምንድን ናቸው?
የ Nest ትግበራዎች የግንባታ ክፍሎች ከዚህ በታች ተዘርዝረዋል; ሌሎችም አሉ ነገር ግን እነዚህ ሦስቱ በጣም ጠቃሚ ናቸው. በፍጥነት እንያቸው።
1. ተቆጣጣሪዎች
ተቆጣጣሪዎች ገቢ ጥያቄዎችን የማስተናገድ እና ለደንበኞች ምላሽ የመስጠት ኃላፊነት አለባቸው። ልዩ የኤችቲቲፒ ጥያቄዎችን ይቀበላል እና የማዞሪያ ስርዓቱ የትኛው ተቆጣጣሪ የትኛውን ጥያቄ እንደሚያገኝ ይወስናል።
ከዚያም ለመላክ ተስማሚ የሆነ መልስ ያዘጋጃል. በክፍሎች እና በጌጦዎች እርዳታ ቀላል ሰብሳቢ ተገንብቷል እና እያንዳንዱ ተቆጣጣሪ የተለያዩ ስራዎችን ለመስራት የራሱ የሆነ መንገድ አለው.
2. አቅራቢዎች
አቅራቢዎች በNest ውስጥ ቁልፍ ሀሳብ ናቸው። ብዙዎቹ ዋና የNest ክፍሎች - አገልግሎቶች፣ ማከማቻዎች፣ ፋብሪካዎች፣ አጋዥ እና የመሳሰሉት - እንደ አቅራቢዎች ሊያዙ ይችላሉ።
የአቅራቢው መሰረታዊ ሀሳብ እንደ ጥገኝነት ሊወጋ ይችላል; ይህ የሚያመለክተው ነገሮች እርስ በእርሳቸው የተለያዩ ማህበሮች ሊመሰርቱ እንደሚችሉ ነው፣ እና የነገሮችን “የማጠመድ” ሚና በዋናነት ወደ Nest Runtime ሲስተም ሊላክ ይችላል።
3. ሞጁሎች
ሞጁል የመተግበሪያውን መዋቅር አካላት የሚያደራጅ @ሞዱል() ማስዋቢያ ያለው ክፍል ነው። እያንዳንዱ መተግበሪያ የመተግበሪያውን ግራፍ ለመገንባት የሚያገለግል ስርወ ሞጁል አለው፣ ይህም በአቅራቢው እና በሞጁሉ መካከል ያለውን ጥገኝነት እና መስተጋብር የበለጠ ይፈታል።
ይህ ማስጌጥ የትኛዎቹ ክፍሎች፣ ተቆጣጣሪዎች ወይም ሌሎች ሀብቶች በመተግበሪያው ኮድ ውስጥ ጥቅም ላይ እንደሚውሉ ለመለየት እና እነሱን ወደ አንድ ስብስብ ለመለየት ለNest.js ሜታዳታ ይሰጣል።
እያንዳንዱ ሞጁል በሆነ መንገድ የተገናኙ የችሎታዎች ስብስብ አለው.
በNestJS መጀመር
1. መግጠም
እነዚህን ደረጃዎች በመከተል NestJSን እንጭን እና ከእሱ ጋር ፕሮጀክት እንስራ።
በዚህ ምክንያት የሚከተለው የማውጫ መዋቅር ይፈጠራል።
2. ተቆጣጣሪዎች
የ Nest የግንባታ ብሎኮች ተቆጣጣሪዎች ናቸው። ወደ ውስጥ የሚገቡ ጥያቄዎች የሚስተናገዱባቸው ቦታዎች እነዚህ ናቸው። ከዚህ በታች ባለው ኮድ ላይ እንደሚታየው የኤችቲቲፒ ዘዴ ማሻሻያዎችን (Get, Post, Put, Delete እና የመሳሰሉትን) ማስጌጫዎችን በመጠቀም የመንገዱን መንገድ መግለጽ ይችላሉ.
Nestjs የማስዋቢያ ዘዴን ይጠቀማል እና በአብዛኛው በTyscript የተዘጋጀ ነው፣ ምንም እንኳን ጃቫ ስክሪፕትንም ይደግፋል። እንዲሁም የጥያቄውን አካል ለማረጋገጥ የክፍል አረጋጋጭን መጠቀም ይችላሉ።
እኔ የ Nestjs አገልጋይ ምሳሌ ላዘጋጅ እና በአለም አቀፍ ደረጃ ValidationPipeን ልጨምር ነው። ቧንቧዎች ከመቆጣጠሪያዎች በፊት የሚሰሩ ዘዴዎች ብቻ ናቸው. ቧንቧዎች በ @UsePipes ማስጌጫ በመጠቀም በዘዴ/በክርክር ደረጃ ሊተገበሩ ይችላሉ።
3. አቅራቢዎች
አቅራቢዎች ሌላው የNestjs ወሳኝ አካል ናቸው። እስካሁን ድረስ መረጃን በጊዜያዊ ተለዋዋጭ ውስጥ እያከማችሁ ነበር. ለዚህም ነው የመቆጣጠሪያ ተቆጣጣሪዎችን በመጠቀም እንዲህ ዓይነቱን ቀላል ተግባር ማከናወን የሚቻለው.
ነገር ግን፣ ለትልቅ፣ ለተወሳሰበ አመክንዮ፣ ኮድ መለያየት እና እንደገና መጠቀም ከባድ ይሆናል። ይህ አቅራቢዎች ሲገቡ ነው። @Injectable decoratorን በመጠቀም ከክፍል በላይ አቅራቢን ማወጅ/መፍጠር ይችላሉ። ከዚያ፣ አቅራቢዎችን በመጠቀም፣ የጥገኝነት መርፌ፣ ምዝግብ ማስታወሻ እና ሌሎች ተግባሮችን ማከናወን ይችላሉ።
4. ሞጁሎች
Nestjs ሞጁሎች ዓለም አቀፋዊ አይደሉም; ይልቁንም ጥልቀት አላቸው.
ሆኖም ግን, ከማንኛውም ሌላ ሞጁሎች ጋር ሊጋራ ይችላል. ምንም እንኳን እንደ Angular፣ ግሎባል ሞጁሎችን ቢያቀርብም፣ በNestjs ውስጥ በብዛት ጥቅም ላይ በሚውሉበት ሞጁል ውስጥ አገልግሎቶችን/ተቆጣጣሪዎችን ማቆየት የበለጠ ይመከራል።
NestCLI ብዙ ጊዜ ሞጁሎችን ለማምረት ያገለግላል፣ እና በዚያ ሞጁል አውድ ውስጥ የሚፈጠሩ አቅራቢዎች/ተቆጣጣሪዎች በCLI በራስ-ሰር ይታከላሉ። እነዚህ ባህሪያት ሞጁሎች በመባል ይታወቃሉ.
5. ልዩ ማጣሪያዎች
ልዩ ማጣሪያዎች ተቆጣጣሪው የተለየ ነገር ሲጥል የሚጠሩ የስህተት ተቆጣጣሪዎች ናቸው። ጉዳዩን በራስ ሰር ያስተዳድራል እና ተገቢ የሆነ ለተጠቃሚ ምቹ የሆነ የስህተት መልእክት ያስተላልፋል።
ብዙ የHttpException የተወረሱ ልዩ ሁኔታዎች በፖኬጁ @nestjs/የጋራ፣ NotFoundException፣ BadRequestException፣ NotAcceptableException፣ UnauthorizedException እና ሌሎችንም ጨምሮ ቀርበዋል። የእራስዎን ExceptionFilter እንኳን መንደፍ ይችላሉ።
6. ሚድልዌር
ከመንገድ ተቆጣጣሪው በፊት የሚጠራ ተግባር መካከለኛ ዌር ይባላል። በመተግበሪያው የጥያቄ ምላሽ ዑደት ውስጥ ያለው የጥያቄው እና ምላሽ ነገሮች እንዲሁም ቀጣዩ() መካከለኛ ዌር ተግባር ለመካከለኛ ዌር ተግባራት ተደራሽ ናቸው።
ቀጥሎ የሚባል ተለዋዋጭ በተለምዶ የሚቀጥለውን የመሃል ዌር ተግባር ለመለየት ይጠቅማል። ብጁ Nest middleware @Injectable() ማስዋቢያን በመጠቀም ዘዴ ወይም ክፍል ውስጥ መተግበር ይችላል።
7. ጠባቂዎች
ጠባቂዎች ለአንድ ነገር ብቻ ተጠያቂ ናቸው. በተወሰኑ ሁኔታዎች (በተለይ በተጠቃሚ የተገለጸ አመክንዮ) ላይ በመመስረት ጥያቄ በተቆጣጣሪው መስተናገድ ወይም አለመካሄዱን መገምገም የእነርሱ ኃላፊነት ነው።
ለማረጋገጫ/ፍቃድ አጋዥ ሲሆን በ Nestjs ውስጥ የሚመከር ዘዴ ነው።
ምንም እንኳን ማረጋገጫ/ፍቃዶች ወዘተ ሚድዌርን በመጠቀም ሊከናወን ቢችልም በ expressም ሆነ በሌሎች ኤችቲቲፒ ሰርቨሮች ተያያዥነት ያለው ጠንካራ አውድ ስለሌላቸው እና ጥያቄውን ለማስኬድ የትኛው ዘዴ ጥቅም ላይ እንደሚውል ለማወቅ ምንም ምክንያት ስለሌላቸው በኤክስፕረስም ሆነ በሌሎች ኤችቲቲፒ አገልጋዮች አይደረግም።
ጥቅሞች
- ማዕቀፉ በማብራሪያዎች ላይ በእጅጉ የተመካ ነው፣ እነዚህም ከማጠቃለያ ነጥብ እስከ ስዋገር ሰነድ ድረስ ማንኛውንም ነገር ለማምረት ያገለግላሉ። የመጨረሻ ነጥቦቹ መሠረታዊ እና ሥርዓታማ ናቸው, እና ማብራሪያዎቹ በአጠቃላይ እድገትን ቀላል ያደርጉታል.
- Nest.js በሞጁል ላይ የተመሰረተ ማዕቀፍ ስለሆነ በብዙ ፕሮጀክቶች ውስጥ የአጠቃላይ ዓላማ ሞጁሎችን ወደ ውጭ ማድረግ እና ኮድን እንደገና መጠቀም ቀላል ነው።
- የNest.js አቃፊ መዋቅር በAngular ጉልህ ተጽዕኖ ይደረግበታል። የNest አገልግሎትን ሲነድፉ፣ ይህ አነስተኛ የስራ ጊዜ እንዲኖር ያስችላል።
- አካላት የራሳቸው ማውጫዎች አሏቸው፣ ሥሩ የመተግበሪያውን ሞጁል እና ዋና ፋይል የያዘ። በአወቃቀሩ ቀላልነት ምክንያት ከመተግበሪያው መዋቅር ይልቅ ለዋና ነጥቦች እና ለደንበኞቻቸው ንድፍ የበለጠ ትኩረት ሊሰጥ ይችላል.
- Nest፣ ልክ እንደ Angular፣ ጥሩ የትዕዛዝ መስመር መሳሪያ Nestjs/cli ያቀርባል፣ ይህም በመስቀለኛ ጥቅል አስተዳዳሪ በኩል ይገኛል።
ጥቅምና
- Nest ከTyScript አጠቃቀም እና ከ Angular ውህደት አንፃር ጥቅም አለው፣ ግን የአንድ ትልቅ ኮርፖሬሽን የገንዘብ ድጋፍ የለውም።
- የሰነድ እጥረት ለNest ተጠቃሚዎች ትልቁን ስጋት ይፈጥራል። ምንም እንኳን ማዕቀፉ ከሌሎች ማዕቀፎች ጋር ጥሩ መስተጋብር ቢኖረውም, ሰነዱ ትንሽ እና ምንም ሊሆኑ የሚችሉ ችግሮችን አይፈታም.
- Nest ከTyScript አጠቃቀም እና ከ Angular አንፃር ጥቅም አለው።
መደምደሚያ
NestJS ለገንቢዎች ትልቅ እግር ማሳደግ ያቀርባል። ልማትን ለመጀመር, ማድረግ ያለብዎት ነገር ብቻ ነው አዲስ መተግበሪያ ይፍጠሩ እና መሄድ ጥሩ ነው. ይህ ማዕቀፍ ወዲያውኑ ጉልህ የሆነ እድገትን ይሰጣል፣ እንዲሁም ተስማሚ የመተግበሪያ አርክቴክቸርን በማቋቋም ተጨማሪ ደረጃዎችን እንዲወስዱ ይረዳዎታል።
አፕሊኬሽኖችን ለማስተዳደር እና ለረጅም ጊዜ የሚቆዩ አፕሊኬሽኖችን ለማምረት ዘመናዊ ዘዴዎችን እና ቴክኖሎጂዎችን ይጠቀማል. ከ GraphQL፣ WebSockets ጋር ለመገናኘት እና የማይክሮ አገልግሎቶችን ለመገንባት ሊያገለግል ይችላል።
መልስ ይስጡ