2021 માં, JavaScript એ સૌથી વધુ ઉપયોગમાં લેવાતી પ્રોગ્રામિંગ ભાષા હતી.
આ ટેક્નોલોજીની અપીલ નિર્વિવાદ છે, જેમ કે જાવાસ્ક્રિપ્ટ પ્રોગ્રામિંગને સક્ષમ કરતા વિશાળ સંખ્યામાં ફ્રેમવર્ક દ્વારા જોવામાં આવે છે.
અગ્રભાગ પર કોણીય, પ્રતિક્રિયા અને Vue છે, તેમજ બેકએન્ડ પર એક્સપ્રેસ અને નેક્સ્ટ છે, જેમાં થોડાકનો ઉલ્લેખ છે.
JavaScript માં બેકએન્ડ પ્રોગ્રામિંગ માટે ઘણા બધા અદ્ભુત ફ્રેમવર્ક સુલભ છે, તમે વિચારતા હશો કે હું એક્સપ્રેસ અથવા નેક્સ્ટનો ઉપયોગ કરવાને બદલે કંઈક અલગ કેમ શોધીશ.
કદાચ તમારે યોગ્ય બોઈલરપ્લેટ વડે ઝડપથી વિકાસ પ્રક્રિયાને જમ્પસ્ટાર્ટ કરવાની જરૂર છે, અને મેન્યુઅલી માત્ર નવા નિયંત્રકો જ નહીં પરંતુ સેવાઓ પણ ઉમેરવાથી તમે બીમાર થઈ શકો છો.
અથવા તમે મોટા, સ્કેલેબલ સૉફ્ટવેર બનાવવા માંગો છો જે મેનેજ કરવા માટે સરળ છે. અથવા કદાચ તમે ફક્ત વધુ કાર્યક્ષમ અને અનુકૂળ રીતે કામ કરવા માંગો છો.
તમારા સંજોગોમાં ગમે તે સાચું હોય, Nest.js એ તમારી જરૂરિયાતો માટે સંપૂર્ણ ઉકેલ હોઈ શકે છે.
આ પોસ્ટ NestJS આંતરદૃષ્ટિ તેમજ હાથ પર અનુભવ પ્રદાન કરશે.
NestJS શું છે?
નેસ્ટજેએસ એક પ્રગતિશીલ નોડ ફ્રેમવર્ક છે જે ઓપન-સોર્સ, વિસ્તૃત અને અનુકૂલનક્ષમ છે .જે.એસ બિલ્ડીંગ, આકર્ષક અને પડકારરૂપ બેકએન્ડ સિસ્ટમ માટેનું માળખું. તે હવે સૌથી ઝડપી વૃદ્ધિ દર સાથે નોડ છે.
Js માટે TypeScript ફ્રેમવર્ક. NestJS નો ઉપયોગ એપ્લીકેશન બનાવવા માટે થાય છે જે સ્કેલેબલ, ટેસ્ટેબલ અને ઢીલી રીતે જોડાયેલ હોય.
તે નોડમાં માપનીયતા ઉમેરે છે. Js સર્વર્સને સંપૂર્ણ નવા સ્તરે લઈ જવામાં આવ્યા છે. PostgreSQL, MongoDB, અને MySQL આધારભૂત ડેટાબેસેસમાં છે.
NestJS એક્સ્ટેન્સિબલ છે કારણ કે તે અન્ય પુસ્તકાલયો સાથે વાપરી શકાય છે; તેના અનુકૂલનક્ષમ સંપૂર્ણ સુવિધાયુક્ત ઇકોસિસ્ટમને કારણે લવચીક. અને પ્રગતિશીલ કારણ કે તે JavaScript સુવિધાઓ અને ડિઝાઇન સિદ્ધાંતોને સપોર્ટ કરે છે.
તે મુખ્યત્વે કોણીય, પ્રતિક્રિયા અને Vue દ્વારા પ્રભાવિત છે અને બિલ્ટ-ઇન ડિપેન્ડન્સી ઈન્જેક્શન સાથે આવે છે.
વિશેષતા
- તે વાપરવા, શીખવા અને માસ્ટર કરવા માટે સરળ છે.
- તે મફત છે અને ખુલ્લા સ્ત્રોત (MIT લાઇસન્સ)
- ઉત્પાદકતા અને વિકાસની સરળતા વધારવા માટે શક્તિશાળી કમાન્ડ લાઇન ઇન્ટરફેસ (CLI).
- એકમ-પરીક્ષણ કાર્યક્રમો કે જે ઉપયોગમાં સરળ છે
- TypeScript, એક ચુસ્ત રીતે ટાઇપ કરેલી ભાષા કે જે JavaScriptનો સુપરસેટ છે, તેનો ઉપયોગ થાય છે.
- સક્રિય કોડબેઝનો વિકાસ અને જાળવણી.
- સેંકડો નેસ્ટ-વિશિષ્ટ મોડ્યુલો માટે સપોર્ટ જે લોકપ્રિય તકનીકો અને વિચારો જેમ કે TypeORM, Mongoose, GraphQL, લોગીંગ, માન્યતા, કેશીંગ, WebSockets અને વધુ સાથે ઇન્ટરફેસ કરવાનું સરળ બનાવે છે.
NestJS ના બિલ્ડીંગ બ્લોક્સ શું છે?
નેસ્ટ એપ્લીકેશનના નિર્માણ ઘટકો નીચે સૂચિબદ્ધ છે; ત્યાં અન્ય છે, પરંતુ આ ત્રણ સૌથી નોંધપાત્ર છે. ચાલો તેમને ઝડપથી એક નજર કરીએ.
1. નિયંત્રકો
નિયંત્રકો ઇનકમિંગ વિનંતીઓ પર પ્રક્રિયા કરવા અને ગ્રાહકોને પ્રતિસાદ આપવાનો હવાલો સંભાળે છે. તે ચોક્કસ HTTP વિનંતીઓ મેળવે છે, અને રૂટીંગ સિસ્ટમ નક્કી કરે છે કે કયા નિયંત્રકને કઈ વિનંતી મળે છે.
તે પછી મોકલવા માટે યોગ્ય જવાબનો મુસદ્દો તૈયાર કરે છે. વર્ગો અને સુશોભનકારોની મદદથી, એક સરળ કલેક્ટર બનાવવામાં આવે છે અને દરેક નિયંત્રક પાસે વિવિધ કાર્યો કરવા માટે તેના પોતાના રૂટ્સનો સેટ હોય છે.
2. પ્રદાતાઓ
Nest માં પ્રદાતાઓ એ મુખ્ય વિચાર છે. નેસ્ટના ઘણા મુખ્ય વર્ગો — સેવાઓ, ભંડાર, ફેક્ટરીઓ, મદદગારો અને તેથી વધુ - પ્રદાતાઓ તરીકે નિયંત્રિત કરી શકાય છે.
પ્રદાતાની મૂળભૂત ધારણા એ છે કે તેને નિર્ભરતા તરીકે ઇન્જેક્ટ કરી શકાય છે; આ સૂચવે છે કે ઑબ્જેક્ટ્સ એકબીજા સાથે વિવિધ જોડાણો બનાવી શકે છે, અને ઑબ્જેક્ટ્સના "વાયરિંગ અપ" ઉદાહરણોની ભૂમિકા મુખ્યત્વે નેસ્ટ રનટાઈમ સિસ્ટમમાં આઉટસોર્સ કરી શકાય છે.
3. મોડ્યુલો
મોડ્યુલ એ @Module() ડેકોરેટર સાથેનો વર્ગ છે જે એપ્લિકેશનના બંધારણના ઘટકોને ગોઠવે છે. દરેક એપ્લિકેશનમાં રૂટ મોડ્યુલ હોય છે જેનો ઉપયોગ એપ્લિકેશન ગ્રાફ બનાવવા માટે થાય છે, જે પ્રદાતા અને મોડ્યુલ વચ્ચેની અવલંબન અને ક્રિયાપ્રતિક્રિયાઓને વધુ ઉકેલે છે.
આ ડેકોરેટર એપ્લીકેશન કોડમાં કયા ઘટકો, નિયંત્રકો અથવા અન્ય સંસાધનોનો ઉપયોગ કરવામાં આવશે તે ઓળખવા માટે Nest.js ને મેટાડેટા આપે છે અને તેમને એક સેટમાં જોડે છે.
દરેક મોડ્યુલમાં ક્ષમતાઓનો સંગ્રહ હોય છે જે અમુક રીતે જોડાયેલ હોય છે.
NestJS સાથે પ્રારંભ કરવું
1. સ્થાપન
ચાલો NestJS ઇન્સ્ટોલ કરીએ અને આ પગલાંઓ અનુસરીને તેની સાથે પ્રોજેક્ટ બનાવીએ:
આના પરિણામે નીચેની ડિરેક્ટરી માળખું બનાવવામાં આવશે:
2. નિયંત્રકો
નેસ્ટના બિલ્ડીંગ બ્લોક્સ કંટ્રોલર છે. આ એવા સ્થાનો છે જ્યાં ઇનબાઉન્ડ વિનંતીઓનું સંચાલન કરવામાં આવશે. તમે HTTP મેથડ મોડિફાયર (ગેટ, પોસ્ટ, પુટ, ડિલીટ અને તેથી વધુ) ડેકોરેટર્સનો ઉપયોગ કરીને રૂટ પાથનો ઉલ્લેખ કરી શકો છો, જેમ કે નીચેના કોડમાં દેખાય છે.
Nestjs ડેકોરેટર અભિગમનો ઉપયોગ કરે છે અને મોટાભાગે ટાઇપસ્ક્રીપ્ટમાં વિકસાવવામાં આવે છે, જો કે તે JavaScript ને પણ સપોર્ટ કરે છે. તમે વિનંતીના મુખ્ય ભાગને માન્ય કરવા માટે ક્લાસ વેલિડેટરનો પણ ઉપયોગ કરી શકો છો.
હું માત્ર નેસ્ટજેસ સર્વર ઇન્સ્ટન્સ બનાવવા જઈ રહ્યો છું અને વૈશ્વિક સ્તરે ValidationPipe ઉમેરીશ. પાઈપ્સ એ માત્ર એવી પદ્ધતિઓ છે જે નિયંત્રકો સમક્ષ એક્ઝિક્યુટ કરે છે. @UsePipes ડેકોરેટરનો ઉપયોગ કરીને પાઈપો પદ્ધતિ/દલીલ સ્તરે પણ લાગુ કરી શકાય છે.
3. પ્રદાતાઓ
પ્રદાતાઓ Nestjs ના અન્ય મહત્વપૂર્ણ ઘટક છે. અત્યાર સુધી, હું અસ્થાયી ચલમાં ડેટા સ્ટોર કરતો હતો. તેથી જ કંટ્રોલર હેન્ડલર્સનો ઉપયોગ કરીને આવા સરળ કાર્યને પૂર્ણ કરી શકાય છે.
જો કે, મોટા, વધુ જટિલ તર્ક માટે, કોડ વિભાજન અને પુનઃઉપયોગ મુશ્કેલ હશે. આ ત્યારે થાય છે જ્યારે સપ્લાયર્સ આવે છે. તમે @Injectable ડેકોરેટરનો ઉપયોગ કરીને વર્ગની ટોચ પર પ્રદાતાની ઘોષણા/ક્રિયા કરી શકો છો. પછી, પ્રદાતાઓનો ઉપયોગ કરીને, તમે નિર્ભરતા ઇન્જેક્શન, લોગીંગ અને અન્ય કાર્યો કરી શકો છો.
4. મોડ્યુલો
Nestjs મોડ્યુલો વૈશ્વિક નથી; તેના બદલે, તેમની પાસે ઊંડાઈ છે.
જો કે, તે અન્ય કોઈપણ મોડ્યુલ સાથે પણ શેર કરી શકાય છે. જો કે તે, કોણીયની જેમ, વૈશ્વિક મોડ્યુલ્સ ઓફર કરે છે, તે મોડ્યુલમાં સેવાઓ/કંટ્રોલર્સને રાખવાનું વધુ સલાહભર્યું છે જ્યાં તેઓ Nestjs માં સૌથી વધુ ઉપયોગમાં લેવાય છે.
NestCLI નો ઉપયોગ મોટાભાગે મોડ્યુલ બનાવવા માટે થાય છે, અને તે મોડ્યુલના સંદર્ભમાં જનરેટ થયેલા પ્રદાતાઓ/નિયંત્રકો CLI દ્વારા આપમેળે ઉમેરવામાં આવે છે. આ ફીચર મોડ્યુલ તરીકે ઓળખાય છે.
5. અપવાદ ફિલ્ટર્સ
અપવાદ ફિલ્ટર્સ એ એરર હેન્ડલર્સ છે જે જ્યારે કંટ્રોલર અપવાદ ફેંકે ત્યારે બોલાવવામાં આવે છે. તે આપમેળે સમસ્યાનું સંચાલન કરે છે અને યોગ્ય, વપરાશકર્તા-મૈત્રીપૂર્ણ ભૂલ સંદેશ પહોંચાડે છે.
ઘણા HttpException વારસાગત અપવાદો પેકેજ @nestjs/common દ્વારા પ્રદાન કરવામાં આવે છે, જેમાં NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException અને અન્ય ઘણા લોકોનો સમાવેશ થાય છે. તમે તમારું પોતાનું એક્સેપ્શન ફિલ્ટર પણ ડિઝાઇન કરી શકો છો.
6. મિડલવેર
એક ફંક્શન કે જે રૂટ હેન્ડલર પહેલાં બોલાવવામાં આવે છે તેને મિડલવેર કહેવાય છે. વિનંતી અને પ્રતિભાવ ઑબ્જેક્ટ્સ, તેમજ એપ્લિકેશનના વિનંતી-પ્રતિસાદ ચક્રમાં આગામી() મિડલવેર ફંક્શન, મિડલવેર કાર્યો માટે સુલભ છે.
નેક્સ્ટ નામના ચલનો ઉપયોગ સામાન્ય રીતે આગામી મિડલવેર ફંક્શનને ઓળખવા માટે થાય છે. કસ્ટમ નેસ્ટ મિડલવેરને @Injectable() ડેકોરેટરનો ઉપયોગ કરીને પદ્ધતિ અથવા વર્ગમાં લાગુ કરી શકાય છે.
7. રક્ષકો
રક્ષકો માત્ર એક વસ્તુ માટે જવાબદાર છે. ચોક્કસ સંજોગો (ખાસ કરીને, વપરાશકર્તા-વ્યાખ્યાયિત તર્ક)ના આધારે નિયંત્રક દ્વારા વિનંતી પર પ્રક્રિયા કરવામાં આવશે કે નહીં તેનું મૂલ્યાંકન કરવાની જવાબદારી તેમની છે.
તે પ્રમાણીકરણ/અધિકૃતતા માટે મદદરૂપ છે અને Nestjs માં ભલામણ કરેલ પદ્ધતિ છે.
જો કે પ્રમાણીકરણ/પરમિશન વગેરે, મિડલવેરનો ઉપયોગ કરીને કરી શકાય છે, તે એક્સપ્રેસ અથવા અન્ય HTTP સર્વરમાં કરવામાં આવતું નથી કારણ કે તેમની પાસે સંબંધિત મજબૂત સંદર્ભ નથી અને વિનંતી પર પ્રક્રિયા કરવા માટે કઈ પદ્ધતિનો ઉપયોગ કરવામાં આવશે તે જાણવાનું કોઈ કારણ નથી.
લાભો
- ફ્રેમવર્ક એનોટેશન્સ પર ખૂબ જ નિર્ભર છે, જેનો ઉપયોગ એન્ડપોઇન્ટ્સથી સ્વેગર ડોક્યુમેન્ટેશન સુધી કંઈપણ બનાવવા માટે થાય છે. અંતિમ બિંદુઓ મૂળભૂત અને વ્યવસ્થિત છે, અને ટીકા સામાન્ય રીતે વિકાસને સરળ બનાવે છે.
- Nest.js એ મોડ્યુલ-આધારિત ફ્રેમવર્ક હોવાથી સામાન્ય હેતુના મોડ્યુલોને બાહ્ય બનાવવું અને કોડનો પુનઃઉપયોગ ઘણા પ્રોજેક્ટ્સમાં કરવો સરળ છે.
- Nest.js નું ફોલ્ડર માળખું કોણીય દ્વારા નોંધપાત્ર રીતે પ્રભાવિત છે. નેસ્ટ સેવા ડિઝાઇન કરતી વખતે, આ ન્યૂનતમ ડાઉનટાઇમ માટે પરવાનગી આપે છે.
- ઘટકોની પોતાની ડિરેક્ટરીઓ હોય છે, જેમાં એપ્લિકેશન મોડ્યુલ અને મુખ્ય ફાઇલ હોય છે. રચનાની સરળતાને કારણે, એપ્લિકેશનની રચનાને બદલે અંતિમ બિંદુઓ અને તેમના ગ્રાહકોની ડિઝાઇન પર વધુ ધ્યાન આપી શકાય છે.
- Nest, કોણીયની જેમ, એક સરસ કમાન્ડ-લાઇન ટૂલ, Nestjs/cli ઓફર કરે છે, જે નોડ પેકેજ મેનેજર દ્વારા ઉપલબ્ધ છે.
ગેરફાયદામાં
- TypeScript ઉપયોગ અને કોણીય એકીકરણના સંદર્ભમાં નેસ્ટનો ફાયદો છે, પરંતુ તેમાં વિશાળ કોર્પોરેશનના નાણાકીય સહાયનો અભાવ છે.
- દસ્તાવેજોનો અભાવ નેસ્ટ વપરાશકર્તાઓ માટે સૌથી મોટો ખતરો છે. જો કે ફ્રેમવર્ક અન્ય ફ્રેમવર્ક સાથે ઉત્કૃષ્ટ ક્રિયાપ્રતિક્રિયા ધરાવે છે, દસ્તાવેજીકરણ છૂટાછવાયા છે અને કોઈપણ સંભવિત મુશ્કેલીઓને સંબોધતા નથી.
- TypeScript ઉપયોગ અને કોણીય સંદર્ભમાં નેસ્ટનો ફાયદો છે.
ઉપસંહાર
NestJS વિકાસકર્તાઓને વિશાળ પગ સાથે પ્રદાન કરે છે. વિકાસ શરૂ કરવા માટે, તમારે માત્ર એટલું જ કરવાની જરૂર છે નવી એપ્લિકેશન બનાવો અને તમે જવા માટે સારા છો. આ ફ્રેમવર્ક તરત જ નોંધપાત્ર બૂસ્ટ પ્રદાન કરે છે, જ્યારે યોગ્ય એપ્લિકેશન આર્કિટેક્ચર સ્થાપિત કરીને વધારાના તબક્કાઓ લેવામાં પણ તમને મદદ કરે છે.
તે વ્યવસ્થિત અને લાંબા સમય સુધી ચાલતી હોય તેવી એપ્લિકેશનો બનાવવા માટે અત્યાધુનિક પદ્ધતિઓ અને ટેકનોલોજીનો ઉપયોગ કરે છે. તેનો ઉપયોગ GraphQL, WebSockets સાથે જોડાવા અને માઇક્રોસર્વિસિસ બનાવવા માટે થઈ શકે છે.
એક જવાબ છોડો