2021 সালে, জাভাস্ক্রিপ্ট ছিল সর্বাধিক ব্যবহৃত প্রোগ্রামিং ভাষা।
এই প্রযুক্তির আবেদন অনস্বীকার্য, জাভাস্ক্রিপ্ট প্রোগ্রামিং সক্ষম করে এমন বিশাল সংখ্যক ফ্রেমওয়ার্ক দ্বারা দেখা যায়।
সামনের প্রান্তে কৌণিক, প্রতিক্রিয়া এবং ভু রয়েছে, পাশাপাশি ব্যাকএন্ডে এক্সপ্রেস এবং নেক্সট রয়েছে, কয়েকটি উল্লেখ করার জন্য।
জাভাস্ক্রিপ্টে ব্যাকএন্ড প্রোগ্রামিংয়ের জন্য অনেকগুলি চমৎকার ফ্রেমওয়ার্ক অ্যাক্সেসযোগ্য, আপনি ভাবছেন কেন আমি এক্সপ্রেস বা নেক্সট ব্যবহার করার পরিবর্তে ভিন্ন কিছু খুঁজব।
সম্ভবত আপনাকে একটি শালীন বয়লারপ্লেটের সাহায্যে দ্রুত বিকাশের প্রক্রিয়া শুরু করতে হবে এবং ম্যানুয়ালি শুধুমাত্র নতুন কন্ট্রোলারই নয়, পরিষেবাগুলিও আপনাকে অসুস্থ করে তোলে।
অথবা আপনি বড়, মাপযোগ্য সফ্টওয়্যার তৈরি করতে চান যা পরিচালনা করা সহজ। অথবা সম্ভবত আপনি কেবল আরও দক্ষ এবং সুবিধাজনক পদ্ধতিতে কাজ করতে চান।
আপনার পরিস্থিতিতে যা সত্য হোক না কেন, Nest.js হতে পারে আপনার প্রয়োজনের জন্য নিখুঁত সমাধান।
এই পোস্টটি NestJS অন্তর্দৃষ্টির পাশাপাশি হাতে-কলমে অভিজ্ঞতা প্রদান করবে।
NestJS কি?
নেস্টজেএস একটি প্রগতিশীল নোড ফ্রেমওয়ার্ক যা ওপেন সোর্স, প্রসারণযোগ্য এবং অভিযোজনযোগ্য .জেএস নির্মাণ, আকর্ষক এবং চ্যালেঞ্জিং ব্যাকএন্ড সিস্টেমের জন্য কাঠামো। এটি এখন দ্রুততম বৃদ্ধির হার সহ নোড।
Js জন্য TypeScript ফ্রেমওয়ার্ক। NestJS ব্যবহার করা হয় অ্যাপ্লিকেশানগুলি তৈরি করতে যা পরিমাপযোগ্য, পরীক্ষাযোগ্য এবং শিথিলভাবে সংযুক্ত।
এটি নোডে স্কেলেবিলিটি যোগ করে। Js সার্ভারগুলি সম্পূর্ণ নতুন স্তরে নিয়ে যাওয়া হয়েছে। PostgreSQL, MongoDB, এবং MySQL সমর্থিত ডাটাবেসের মধ্যে রয়েছে।
NestJS এক্সটেনসিবল কারণ এটি অন্যান্য লাইব্রেরির সাথে ব্যবহার করা যেতে পারে; নমনীয় কারণ এর অভিযোজিত সম্পূর্ণরূপে উন্নত বাস্তুতন্ত্র। এবং প্রগতিশীল যেহেতু এটি জাভাস্ক্রিপ্ট বৈশিষ্ট্য এবং নকশা নীতি সমর্থন করে।
এটি প্রাথমিকভাবে Angular, React এবং Vue দ্বারা প্রভাবিত এবং বিল্ট-ইন নির্ভরতা ইনজেকশনের সাথে আসে।
বৈশিষ্ট্য
- এটি ব্যবহার করা, শিখতে এবং মাস্টার করা সহজ।
- এটা বিনামূল্যে এবং ওপেন সোর্স (MIT লাইসেন্স)
- বর্ধিত উত্পাদনশীলতা এবং উন্নয়ন সরলতার জন্য শক্তিশালী কমান্ড লাইন ইন্টারফেস (CLI)
- ইউনিট-টেস্টিং প্রোগ্রাম যা ব্যবহার করা সহজ
- টাইপস্ক্রিপ্ট, একটি শক্তভাবে টাইপ করা ভাষা যা জাভাস্ক্রিপ্টের একটি সুপারসেট, ব্যবহৃত হয়।
- একটি সক্রিয় কোডবেসের উন্নয়ন এবং রক্ষণাবেক্ষণ।
- শত শত নেস্ট-নির্দিষ্ট মডিউলগুলির জন্য সমর্থন যা জনপ্রিয় প্রযুক্তি এবং ধারনা যেমন TypeORM, Mongoose, GraphQL, লগিং, বৈধতা, ক্যাশিং, WebSockets এবং আরও অনেক কিছুর সাথে ইন্টারফেস করা সহজ করে তোলে।
NestJS এর বিল্ডিং ব্লক কি কি?
নেস্ট অ্যাপ্লিকেশনগুলির বিল্ডিং উপাদানগুলি নীচে তালিকাভুক্ত করা হয়েছে; অন্যান্য আছে, কিন্তু এই তিনটি সবচেয়ে উল্লেখযোগ্য। আসুন দ্রুত তাদের একটি কটাক্ষপাত আছে.
1. কন্ট্রোলার
কন্ট্রোলাররা ইনকামিং রিকোয়েস্ট প্রসেসিং এবং ক্লায়েন্টদের সাড়া দেওয়ার দায়িত্বে থাকে। এটি নির্দিষ্ট HTTP অনুরোধগুলি গ্রহণ করে এবং রাউটিং সিস্টেম নির্ধারণ করে কোন নিয়ামক কোন অনুরোধটি পায়।
এটি তারপর পাঠানোর জন্য একটি উপযুক্ত উত্তর খসড়া করে। ক্লাস এবং ডেকোরেটরদের সাহায্যে, একটি সাধারণ সংগ্রাহক তৈরি করা হয় এবং প্রতিটি নিয়ামকের বিভিন্ন কাজ করার জন্য নিজস্ব রুটের সেট রয়েছে।
2. প্রদানকারী
Nest-এ প্রোভাইডার হল একটি মূল আইডিয়া। অনেকগুলি মূল নেস্ট ক্লাস — পরিষেবা, সংগ্রহস্থল, কারখানা, সাহায্যকারী এবং আরও অনেক কিছু - প্রদানকারী হিসাবে পরিচালনা করা যেতে পারে।
একটি প্রদানকারীর মৌলিক ধারণা হল যে এটি একটি নির্ভরতা হিসাবে ইনজেকশন করা যেতে পারে; এটি বোঝায় যে বস্তুগুলি একে অপরের সাথে বিভিন্ন সংস্থান গঠন করতে পারে এবং বস্তুর "ওয়্যারিং আপ" দৃষ্টান্তগুলির ভূমিকা প্রধানত নেস্ট রানটাইম সিস্টেমে আউটসোর্স করা যেতে পারে।
3। মডিউল
একটি মডিউল হল @Module() ডেকোরেটর সহ একটি ক্লাস যা অ্যাপ্লিকেশনের কাঠামোর উপাদানগুলিকে সংগঠিত করে। প্রতিটি অ্যাপ্লিকেশনের একটি রুট মডিউল থাকে যা অ্যাপ্লিকেশন গ্রাফ তৈরি করতে ব্যবহার করা হয়, যা প্রদানকারী এবং মডিউলের মধ্যে নির্ভরতা এবং মিথস্ক্রিয়াকে আরও সমাধান করে।
এই ডেকোরেটর Nest.js-কে মেটাডেটা দেয় যাতে অ্যাপ্লিকেশান কোডে কোন উপাদান, কন্ট্রোলার বা অন্যান্য সংস্থান ব্যবহার করা হবে এবং সেগুলিকে একটি একক সেটে একত্রিত করা হবে।
প্রতিটি মডিউলের ক্ষমতার একটি সংগ্রহ রয়েছে যা কোনো না কোনোভাবে সংযুক্ত থাকে।
NestJS দিয়ে শুরু করা
1. স্থাপন
আসুন NestJS ইনস্টল করি এবং এই পদক্ষেপগুলি অনুসরণ করে এটির সাথে একটি প্রকল্প তৈরি করি:
এর ফলে নিম্নলিখিত ডিরেক্টরি কাঠামো তৈরি হবে:
2. কন্ট্রোলার
নেস্টের বিল্ডিং ব্লকগুলি নিয়ন্ত্রক। এই স্থান যেখানে অন্তর্মুখী অনুরোধ পরিচালনা করা হবে. আপনি HTTP মেথড মডিফায়ার (গেট, পোস্ট, পুট, ডিলিট ইত্যাদি) ডেকোরেটর ব্যবহার করে রুট পাথ নির্দিষ্ট করতে পারেন, যেমনটি নিচের কোডে দেখা যাচ্ছে।
Nestjs ডেকোরেটর পদ্ধতি ব্যবহার করে এবং বেশিরভাগই টাইপস্ক্রিপ্টে বিকশিত হয়, যদিও এটি জাভাস্ক্রিপ্টও সমর্থন করে। আপনি অনুরোধের মূল অংশটি যাচাই করতে একটি ক্লাস যাচাইকারীও ব্যবহার করতে পারেন।
আমি শুধু একটি Nestjs সার্ভারের উদাহরণ তৈরি করতে যাচ্ছি এবং বিশ্বব্যাপী 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, Angular এর মতো, একটি চমৎকার কমান্ড-লাইন টুল, Nestjs/cli অফার করে, যা নোড প্যাকেজ ম্যানেজারের মাধ্যমে উপলব্ধ।
অসুবিধা সমূহ
- টাইপস্ক্রিপ্ট ব্যবহার এবং কৌণিক একীকরণের ক্ষেত্রে নেস্টের একটি সুবিধা রয়েছে, তবে এটি একটি বিশাল কর্পোরেশনের আর্থিক সহায়তার অভাব রয়েছে।
- ডকুমেন্টেশনের অভাব নেস্ট ব্যবহারকারীদের জন্য সবচেয়ে বড় হুমকি। যদিও ফ্রেমওয়ার্কের অন্যান্য ফ্রেমওয়ার্কের সাথে চমৎকার মিথস্ক্রিয়া রয়েছে, ডকুমেন্টেশনটি বিচ্ছিন্ন এবং কোনো সম্ভাব্য অসুবিধার সমাধান করে না।
- টাইপস্ক্রিপ্ট ব্যবহার এবং কৌণিক পরিপ্রেক্ষিতে নেস্টের একটি সুবিধা রয়েছে।
উপসংহার
NestJS ডেভেলপারদের একটি বিশাল লেগ আপ প্রদান করে। উন্নয়ন শুরু করতে, আপনাকে যা করতে হবে তা হল একটি নতুন অ্যাপ তৈরি করুন এবং আপনি যেতে ভাল. এই ফ্রেমওয়ার্কটি সরাসরি একটি উল্লেখযোগ্য বুস্ট প্রদান করে, পাশাপাশি একটি উপযুক্ত অ্যাপ আর্কিটেকচার স্থাপনের মাধ্যমে অতিরিক্ত ধাপ গ্রহণে আপনাকে সহায়তা করে।
এটি পরিচালনাযোগ্য এবং দীর্ঘস্থায়ী অ্যাপ্লিকেশনগুলি তৈরি করতে অত্যাধুনিক পদ্ধতি এবং প্রযুক্তি ব্যবহার করে। এটি GraphQL, WebSockets এর সাথে সংযোগ করতে এবং মাইক্রোসার্ভিস নির্মাণ করতে ব্যবহার করা যেতে পারে।
নির্দেশিকা সমন্ধে মতামত দিন