பொருளடக்கம்[மறை][காட்டு]
2021 ஆம் ஆண்டில், ஜாவாஸ்கிரிப்ட் மிகவும் பரவலாகப் பயன்படுத்தப்படும் நிரலாக்க மொழியாகும்.
ஜாவாஸ்கிரிப்ட் நிரலாக்கத்தை செயல்படுத்தும் பரந்த எண்ணிக்கையிலான கட்டமைப்புகளால் பார்க்கப்படும் இந்த தொழில்நுட்பத்தின் முறையீடு மறுக்க முடியாதது.
முன்புறத்தில் கோண, எதிர்வினை மற்றும் Vue உள்ளன, அதே போல் பின்தளத்தில் எக்ஸ்பிரஸ் மற்றும் நெக்ஸ்ட், சிலவற்றைக் குறிப்பிடலாம்.
ஜாவாஸ்கிரிப்டில் பின்தளத்தில் நிரலாக்கத்திற்கான பல அற்புதமான கட்டமைப்புகள் அணுகக்கூடியதாக இருப்பதால், எக்ஸ்பிரஸ் அல்லது நெக்ஸ்ட் பயன்படுத்துவதை விட வேறு ஒன்றை நான் ஏன் தேடுவேன் என்று நீங்கள் நினைக்கலாம்.
ஒருவேளை நீங்கள் ஒரு ஒழுக்கமான கொதிகலன் மூலம் மேம்பாட்டு செயல்முறையை விரைவாகத் தொடங்க வேண்டும், மேலும் கைமுறையாக புதிய கட்டுப்படுத்திகளை மட்டுமல்ல, சேவைகளையும் சேர்ப்பது உங்களை நோய்வாய்ப்படுத்துகிறது.
அல்லது நிர்வகிக்க எளிதான பெரிய, அளவிடக்கூடிய மென்பொருளை உருவாக்க விரும்புகிறீர்கள். அல்லது ஒருவேளை நீங்கள் மிகவும் திறமையான மற்றும் வசதியான முறையில் வேலை செய்ய விரும்புகிறீர்கள்.
உங்கள் சூழ்நிலையில் எது உண்மையாக இருந்தாலும், உங்கள் தேவைகளுக்கு Nest.js சரியான தீர்வாக இருக்கும்.
இந்த இடுகை NestJS நுண்ணறிவு மற்றும் நேரடி அனுபவத்தை வழங்கும்.
NestJS என்றால் என்ன?
நெஸ்ட்ஜேஎஸ் ஒரு முற்போக்கான முனை கட்டமைப்பாகும், இது திறந்த மூலமானது, விரிவாக்கக்கூடியது மற்றும் மாற்றியமைக்கக்கூடியது .js பின்தள அமைப்புகளை உருவாக்குவதற்கும், ஈடுபடுத்துவதற்கும் மற்றும் சவால் செய்வதற்கும் கட்டமைப்பு. இது இப்போது விரைவான வளர்ச்சி விகிதத்தைக் கொண்ட முனை ஆகும்.
js க்கான டைப்ஸ்கிரிப்ட் கட்டமைப்பு. அளவிடக்கூடிய, சோதிக்கக்கூடிய மற்றும் தளர்வாக இணைக்கப்பட்ட பயன்பாடுகளை உருவாக்க NestJS பயன்படுத்தப்படுகிறது.
இது நோடில் அளவிடுதல் சேர்க்கிறது. Js சேவையகங்கள் முற்றிலும் புதிய நிலைக்கு கொண்டு செல்லப்பட்டுள்ளன. PostgreSQL, MongoDB மற்றும் MySQL ஆகியவை ஆதரிக்கப்படும் தரவுத்தளங்களில் அடங்கும்.
NestJS நீட்டிக்கக்கூடியது, ஏனெனில் இது மற்ற நூலகங்களுடன் பயன்படுத்தப்படலாம்; அதன் தழுவல் முழு அளவிலான சுற்றுச்சூழல் அமைப்பு காரணமாக நெகிழ்வானது. ஜாவாஸ்கிரிப்ட் அம்சங்கள் மற்றும் வடிவமைப்பு கொள்கைகளை ஆதரிப்பதால் முற்போக்கானது.
இது முதன்மையாக கோண, எதிர்வினை மற்றும் Vue ஆகியவற்றால் பாதிக்கப்படுகிறது மற்றும் உள்ளமைக்கப்பட்ட சார்பு ஊசியுடன் வருகிறது.
அம்சங்கள்
- இதைப் பயன்படுத்துவது, கற்றுக்கொள்வது மற்றும் தேர்ச்சி பெறுவது எளிது.
- இது இலவசம் மற்றும் ஓப்பன் சோர்ஸ் (எம்ஐடி உரிமம்)
- ஆற்றல்மிக்க கட்டளை வரி இடைமுகம் (CLI) அதிகரித்த உற்பத்தித்திறன் மற்றும் வளர்ச்சி எளிமை
- யூனிட்-சோதனை திட்டங்கள் பயன்படுத்த எளிதானவை
- ஜாவாஸ்கிரிப்ட்டின் சூப்பர்செட்டான டைப்ஸ்கிரிப்ட், இறுக்கமாக தட்டச்சு செய்யப்பட்ட மொழி பயன்படுத்தப்படுகிறது.
- செயலில் உள்ள கோட்பேஸின் வளர்ச்சி மற்றும் பராமரிப்பு.
- TypeORM, Mongoose, GraphQL, பதிவு செய்தல், சரிபார்த்தல், கேச்சிங், WebSockets மற்றும் பல போன்ற பிரபலமான தொழில்நுட்பங்கள் மற்றும் யோசனைகளுடன் இடைமுகத்தை எளிதாக்கும் நூற்றுக்கணக்கான கூடு-குறிப்பிட்ட தொகுதிக்கூறுகளுக்கான ஆதரவு.
NestJS இன் கட்டுமானத் தொகுதிகள் யாவை?
Nest பயன்பாடுகளின் கட்டுமான கூறுகள் கீழே பட்டியலிடப்பட்டுள்ளன; மற்றவை உள்ளன, ஆனால் இவை மூன்றும் மிக முக்கியமானவை. அவற்றை விரைவாகப் பார்ப்போம்.
1. கட்டுப்படுத்திகள்
உள்வரும் கோரிக்கைகளைச் செயலாக்குவதற்கும் வாடிக்கையாளர்களுக்குப் பதிலளிப்பதற்கும் கட்டுப்பாட்டாளர்கள் பொறுப்பாவார்கள். இது குறிப்பிட்ட HTTP கோரிக்கைகளைப் பெறுகிறது, மேலும் எந்தக் கட்டுப்படுத்தி எந்த கோரிக்கையைப் பெறுகிறது என்பதை ரூட்டிங் அமைப்பு தீர்மானிக்கிறது.
அது பின்னர் அனுப்புவதற்கு பொருத்தமான பதிலை உருவாக்குகிறது. வகுப்புகள் மற்றும் அலங்கரிப்பாளர்களின் உதவியுடன், ஒரு எளிய சேகரிப்பான் கட்டப்பட்டுள்ளது மற்றும் ஒவ்வொரு கட்டுப்படுத்தியும் பல்வேறு பணிகளைச் செய்வதற்கு அதன் சொந்த வழிகளைக் கொண்டுள்ளது.
2. வழங்குநர்கள்
Nest இல் வழங்குநர்கள் முக்கிய யோசனை. பல முக்கிய நெஸ்ட் வகுப்புகள் - சேவைகள், களஞ்சியங்கள், தொழிற்சாலைகள், உதவியாளர்கள் மற்றும் பலவற்றை வழங்குநர்களாகக் கையாளலாம்.
ஒரு வழங்குநரின் அடிப்படைக் கருத்து என்னவென்றால், அது ஒரு சார்புநிலையாக உட்செலுத்தப்படலாம்; பொருள்கள் ஒன்றோடொன்று பல்வேறு தொடர்புகளை உருவாக்க முடியும் என்பதை இது குறிக்கிறது, மேலும் பொருட்களின் "வயரிங் அப்" நிகழ்வுகளின் பங்கு முக்கியமாக Nest இயக்க நேர அமைப்புக்கு அவுட்சோர்ஸ் செய்யப்படலாம்.
3. தொகுதிகள்
ஒரு தொகுதி என்பது @Module() அலங்கரிப்பாளருடன் கூடிய ஒரு வகுப்பாகும், இது பயன்பாட்டின் கட்டமைப்பின் கூறுகளை ஒழுங்கமைக்கிறது. ஒவ்வொரு பயன்பாட்டிற்கும் ஒரு ரூட் தொகுதி உள்ளது, இது பயன்பாட்டு வரைபடத்தை உருவாக்க பயன்படுகிறது, இது வழங்குநருக்கும் தொகுதிக்கும் இடையிலான சார்புகள் மற்றும் தொடர்புகளை மேலும் தீர்க்கிறது.
பயன்பாட்டுக் குறியீட்டில் எந்தெந்த கூறுகள், கட்டுப்படுத்திகள் அல்லது பிற ஆதாரங்கள் பயன்படுத்தப்படும் என்பதைக் கண்டறிந்து அவற்றை ஒரே தொகுப்பாக இணைக்க, Nest.js-க்கு இந்த டெக்கரேட்டர் மெட்டாடேட்டாவை வழங்குகிறது.
ஒவ்வொரு தொகுதியிலும் ஏதோவொரு வகையில் இணைக்கப்பட்ட திறன்களின் தொகுப்பு உள்ளது.
NestJS உடன் தொடங்குதல்
1. நிறுவல்
பின்வரும் படிகளைப் பின்பற்றுவதன் மூலம் NestJS ஐ நிறுவி அதனுடன் ஒரு திட்டத்தை உருவாக்குவோம்:
இதன் விளைவாக பின்வரும் அடைவு அமைப்பு உருவாக்கப்படும்:
2. கட்டுப்படுத்திகள்
கூட்டின் கட்டுமானத் தொகுதிகள் கட்டுப்படுத்திகள். உள்வரும் கோரிக்கைகள் கையாளப்படும் இடங்கள் இவை. கீழே உள்ள குறியீட்டில் காணப்படுவது போல், HTTP முறை மாற்றிகளை (Get, Post, Put, Delete, மற்றும் பல) அலங்கரிப்பாளர்களைப் பயன்படுத்தி வழிப் பாதையைக் குறிப்பிடலாம்.
Nestjs டெக்கரேட்டர் அணுகுமுறையைப் பயன்படுத்துகிறது மற்றும் பெரும்பாலும் டைப்ஸ்கிரிப்ட்டில் உருவாக்கப்பட்டுள்ளது, இருப்பினும் இது ஜாவாஸ்கிரிப்டை ஆதரிக்கிறது. கோரிக்கை அமைப்பைச் சரிபார்க்க நீங்கள் ஒரு வகுப்பு வேலிடேட்டரையும் பயன்படுத்தலாம்.
நான் ஒரு Nestjs சர்வர் நிகழ்வை உருவாக்கி, உலகளவில் ValidationPipe ஐச் சேர்க்கப் போகிறேன். குழாய்கள் என்பது கன்ட்ரோலர்களுக்கு முன் செயல்படும் முறைகள் மட்டுமே. @UsePipes decorator ஐப் பயன்படுத்தி முறை/வாத நிலையிலும் குழாய்களைப் பயன்படுத்தலாம்.
3. வழங்குநர்கள்
வழங்குநர்கள் Nestjs இன் மற்றொரு முக்கியமான அங்கமாகும். இதுவரை, நான் டேட்டாவை தற்காலிக மாறியில் சேமித்து வந்தேன். அதனால்தான் கன்ட்ரோலர் ஹேண்ட்லர்களைப் பயன்படுத்தி இதுபோன்ற எளிய பணியைச் செய்ய முடியும்.
இருப்பினும், பெரிய, மிகவும் சிக்கலான தர்க்கத்திற்கு, குறியீடு பிரித்தல் மற்றும் மறுபயன்பாடு கடினமாக இருக்கும். இந்த நேரத்தில்தான் சப்ளையர்கள் வருகிறார்கள். @Injectable decorator ஐப் பயன்படுத்தி ஒரு வகுப்பின் மேல் ஒரு வழங்குநரை நீங்கள் அறிவிக்கலாம்/உருவாக்கலாம். பின்னர், வழங்குநர்களைப் பயன்படுத்தி, நீங்கள் சார்பு ஊசி, பதிவு செய்தல் மற்றும் பிற பணிகளைச் செய்யலாம்.
4. தொகுதிகள்
Nestjs தொகுதிகள் உலகளாவியவை அல்ல; மாறாக, அவை ஆழம் கொண்டவை.
இருப்பினும், இது வேறு எந்த மாட்யூல்களுடனும் பகிரப்படலாம். Angular போன்று, Global Modules வழங்கினாலும், Nestj களில் பொதுவாகப் பயன்படுத்தப்படும் மாட்யூலில் சேவைகள்/கட்டுப்படுத்திகளை வைத்திருப்பது மிகவும் நல்லது.
பெரும்பாலான நேரங்களில் தொகுதிகளை உருவாக்க NestCLI பயன்படுத்தப்படுகிறது, மேலும் அந்த தொகுதியின் சூழலில் உருவாக்கப்படும் வழங்குநர்கள்/கட்டுப்படுத்திகள் CLI ஆல் தானாகவே சேர்க்கப்படும். இவை அம்ச தொகுதிகள் என்று அழைக்கப்படுகின்றன.
5. விதிவிலக்கு வடிகட்டிகள்
விதிவிலக்கு வடிப்பான்கள் பிழை கையாளுதல்களாகும், அவை ஒரு கட்டுப்பாட்டாளர் விதிவிலக்கை வீசும்போது செயல்படுத்தப்படும். இது தானாகவே சிக்கலை நிர்வகிக்கிறது மற்றும் பொருத்தமான, பயனர் நட்பு பிழை செய்தியை வழங்குகிறது.
பல HttpException மரபுரிமை விதிவிலக்குகள் @nestjs/common தொகுப்பால் வழங்கப்படுகின்றன, இதில் NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException மற்றும் பல உள்ளன. நீங்கள் உங்கள் சொந்த விதிவிலக்கு வடிகட்டியை கூட வடிவமைக்கலாம்.
6. மிடில்வேர்
ரூட் ஹேண்ட்லருக்கு முன் செயல்படுத்தப்படும் ஒரு செயல்பாடு மிடில்வேர் எனப்படும். கோரிக்கை மற்றும் மறுமொழி பொருள்கள், அத்துடன் பயன்பாட்டின் கோரிக்கை-பதில் சுழற்சியில் உள்ள அடுத்த() மிடில்வேர் செயல்பாடு, மிடில்வேர் செயல்பாடுகளுக்கு அணுகக்கூடியது.
அடுத்ததாக அழைக்கப்படும் ஒரு மாறி பொதுவாக அடுத்த மிடில்வேர் செயல்பாட்டைக் கண்டறியப் பயன்படுகிறது. தனிப்பயன் நெஸ்ட் மிடில்வேரை @Injectable() அலங்கரிப்பாளரைப் பயன்படுத்தி ஒரு முறை அல்லது வகுப்பில் செயல்படுத்தலாம்.
7. காவலர்கள்
காவலர்கள் ஒரு விஷயத்திற்கு மட்டுமே பொறுப்பு. குறிப்பிட்ட சூழ்நிலைகளின் அடிப்படையில் (குறிப்பாக, பயனர் வரையறுக்கப்பட்ட தர்க்கம்) கட்டுப்பாட்டாளரால் கோரிக்கை செயலாக்கப்படுமா இல்லையா என்பதை மதிப்பிடுவது அவர்களின் பொறுப்பாகும்.
இது அங்கீகாரம்/அங்கீகாரத்திற்கு உதவியாக இருக்கும் மற்றும் Nestjs இல் பரிந்துரைக்கப்படும் முறையாகும்.
அங்கீகாரம்/அனுமதிகள் போன்றவை, மிடில்வேரைப் பயன்படுத்தி செய்யப்படலாம் என்றாலும், எக்ஸ்பிரஸ் அல்லது பிற HTTP சேவையகங்களில் இது செய்யப்படுவதில்லை, ஏனெனில் அவை தொடர்புடைய வலுவான சூழலைக் கொண்டிருக்கவில்லை மற்றும் கோரிக்கையைச் செயல்படுத்த எந்த முறை பயன்படுத்தப்படும் என்பதை அறிய எந்த காரணமும் இல்லை.
நன்மைகள்
- கட்டமைப்பானது சிறுகுறிப்புகளை பெரிதும் நம்பியுள்ளது, அவை இறுதிப்புள்ளிகள் முதல் ஸ்வாகர் ஆவணப்படுத்தல் வரை எதையும் உருவாக்க பயன்படுகிறது. இறுதிப்புள்ளிகள் அடிப்படை மற்றும் நேர்த்தியானவை, மேலும் சிறுகுறிப்புகள் பொதுவாக வளர்ச்சியை எளிதாக்குகின்றன.
- Nest.js ஒரு தொகுதி அடிப்படையிலான கட்டமைப்பாக இருப்பதால் பல திட்டங்களில் பொது நோக்கத்திற்கான தொகுதிகளை வெளிப்புறமாக்குவது மற்றும் குறியீட்டை மீண்டும் பயன்படுத்துவது எளிது.
- Nest.js' கோப்புறை அமைப்பு குறிப்பிடத்தக்க அளவில் கோணத்தால் பாதிக்கப்படுகிறது. Nest சேவையை வடிவமைக்கும் போது, இது குறைந்தபட்ச வேலையில்லா நேரத்தை அனுமதிக்கிறது.
- கூறுகளுக்கு அவற்றின் சொந்த கோப்பகங்கள் உள்ளன, ரூட்டில் பயன்பாட்டு தொகுதி மற்றும் முக்கிய கோப்பு உள்ளது. கட்டமைப்பின் எளிமை காரணமாக, பயன்பாட்டின் கட்டமைப்பைக் காட்டிலும் இறுதிப்புள்ளிகள் மற்றும் அவற்றின் வாடிக்கையாளர்களின் வடிவமைப்பில் அதிக கவனம் செலுத்தப்படலாம்.
- Angular போன்ற Nest, Nestjs/cli என்ற நல்ல கட்டளை வரி கருவியை வழங்குகிறது, இது Node Package Manager மூலம் கிடைக்கிறது.
குறைபாடுகள்
- டைப்ஸ்கிரிப்ட் பயன்பாடு மற்றும் கோண ஒருங்கிணைப்பு ஆகியவற்றின் அடிப்படையில் Nest ஒரு நன்மையைக் கொண்டுள்ளது, ஆனால் அது ஒரு பெரிய நிறுவனத்தின் நிதி ஆதரவைக் கொண்டிருக்கவில்லை.
- ஆவணங்கள் இல்லாதது Nest பயனர்களுக்கு மிகப்பெரிய அச்சுறுத்தலாக உள்ளது. கட்டமைப்பானது மற்ற கட்டமைப்புகளுடன் சிறந்த தொடர்புகளைக் கொண்டிருந்தாலும், ஆவணங்கள் குறைவாகவே உள்ளது மற்றும் சாத்தியமான சிரமங்களை நிவர்த்தி செய்யாது.
- டைப்ஸ்கிரிப்ட் பயன்பாடு மற்றும் கோணத்தின் அடிப்படையில் Nest ஒரு நன்மையைக் கொண்டுள்ளது.
தீர்மானம்
NestJS டெவலப்பர்களுக்கு ஒரு பெரிய லெக் அப் வழங்குகிறது. வளர்ச்சியைத் தொடங்க, நீங்கள் செய்ய வேண்டியது எல்லாம் புதிய பயன்பாட்டை உருவாக்கவும் மற்றும் நீங்கள் செல்ல நல்லது. இந்த கட்டமைப்பு உடனடியாக ஒரு குறிப்பிடத்தக்க ஊக்கத்தை வழங்குகிறது, அதே நேரத்தில் பொருத்தமான பயன்பாட்டு கட்டமைப்பை நிறுவுவதன் மூலம் கூடுதல் நிலைகளை எடுக்க உங்களுக்கு உதவுகிறது.
நிர்வகிக்கக்கூடிய மற்றும் நீண்ட காலம் நீடிக்கும் பயன்பாடுகளை உருவாக்க இது அதிநவீன முறைகள் மற்றும் தொழில்நுட்பத்தைப் பயன்படுத்துகிறது. இது GraphQL, WebSockets உடன் இணைக்க மற்றும் மைக்ரோ சர்வீஸ்களை உருவாக்க பயன்படுகிறது.
ஒரு பதில் விடவும்