Node.js এক্সপ্রেস ফ্রেমওয়ার্ক টিউটোরিয়াল - 10 মিনিটের মধ্যে শিখুন

এই টিউটোরিয়ালে, আমরা এক্সপ্রেস ফ্রেমওয়ার্ক অধ্যয়ন করব। এই কাঠামোটি এমনভাবে তৈরি করা হয়েছে যে এটি একটি ন্যূনতম এবং নমনীয় Node.js ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক হিসাবে কাজ করে, যা একক এবং মাল্টিপেজ এবং হাইব্রিড ওয়েব অ্যাপ্লিকেশন তৈরির জন্য একটি শক্তিশালী বৈশিষ্ট্য সরবরাহ করে।

এই টিউটোরিয়ালে আপনি শিখবেন-

Express.js কি?

এক্সপ্রেস.জেএস একটি নোড জেএস ওয়েব অ্যাপ্লিকেশন সার্ভার ফ্রেমওয়ার্ক, যা বিশেষভাবে একক-পৃষ্ঠা, মাল্টি-পৃষ্ঠা এবং হাইব্রিড ওয়েব অ্যাপ্লিকেশন তৈরির জন্য ডিজাইন করা হয়েছে।

এটি node.js এর জন্য স্ট্যান্ডার্ড সার্ভার ফ্রেমওয়ার্ক হয়ে উঠেছে। এক্সপ্রেস হল MEAN স্ট্যাক নামে পরিচিত কোন কিছুর ব্যাকএন্ড অংশ।

MEAN হল একটি ফ্রি এবং ওপেন সোর্স জাভাস্ক্রিপ্ট সফটওয়্যার স্ট্যাক যা ডাইনামিক ওয়েব সাইট এবং ওয়েব এপ্লিকেশন তৈরিতে নিচের উপাদান রয়েছে;

1) মঙ্গোডিবি - স্ট্যান্ডার্ড NoSQL ডাটাবেস

2) Express.js - ডিফল্ট ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক

3) Angular.js - ওয়েব অ্যাপ্লিকেশনের জন্য ব্যবহৃত জাভাস্ক্রিপ্ট MVC ফ্রেমওয়ার্ক

4) Node.js - স্কেলেবল সার্ভার-সাইড এবং নেটওয়ার্কিং অ্যাপ্লিকেশনের জন্য ব্যবহৃত ফ্রেমওয়ার্ক।

Express.js কাঠামো একটি অ্যাপ্লিকেশন বিকাশ করা খুব সহজ করে তোলে যা GET, PUT, এবং POST এবং DELETE অনুরোধের মতো একাধিক ধরণের অনুরোধ পরিচালনা করতে ব্যবহার করা যেতে পারে।

এক্সপ্রেস ইনস্টল করা এবং ব্যবহার করা

নোড প্যাকেজ ম্যানেজারের মাধ্যমে এক্সপ্রেস ইনস্টল করা হয়। কমান্ড লাইনে নিচের লাইনটি সম্পাদন করে এটি করা যেতে পারে

npm এক্সপ্রেস ইনস্টল করুন

উপরের কমান্ডটি নোড প্যাকেজ ম্যানেজারকে প্রয়োজনীয় এক্সপ্রেস মডিউলগুলি ডাউনলোড করতে এবং সে অনুযায়ী ইনস্টল করার অনুরোধ করে।

আসুন আমাদের নতুন ইনস্টল করা এক্সপ্রেস ফ্রেমওয়ার্ক ব্যবহার করি এবং একটি সাধারণ 'হ্যালো ওয়ার্ল্ড' অ্যাপ্লিকেশন তৈরি করি।

আমাদের অ্যাপ্লিকেশনটি একটি সাধারণ সার্ভার মডিউল তৈরি করতে যাচ্ছে যা পোর্ট নম্বর 3000 এ শুনবে। আমাদের উদাহরণে, যদি এই পোর্ট নম্বরে ব্রাউজারের মাধ্যমে একটি অনুরোধ করা হয়, তাহলে সার্ভার অ্যাপ্লিকেশনটি ক্লায়েন্টকে একটি 'হ্যালো' ওয়ার্ল্ড 'প্রতিক্রিয়া পাঠাবে ।

var express=require('express'); var app=express(); app.get('/',function(req,res) { res.send('Hello World!'); }); var server=app.listen(3000,function() {}); 

কোড ব্যাখ্যা:

  1. কোডের আমাদের প্রথম লাইনে, আমরা 'এক্সপ্রেস মডিউল' অন্তর্ভুক্ত করার জন্য প্রয়োজনীয় ফাংশন ব্যবহার করছি।
  2. আমরা এক্সপ্রেস মডিউল ব্যবহার শুরু করার আগে, আমাদের এটির একটি বস্তু তৈরি করতে হবে।
  3. এখানে আমরা একটি কলব্যাক ফাংশন তৈরি করছি। এই ফাংশনটি বলা হবে যখনই কেউ আমাদের ওয়েব অ্যাপ্লিকেশনের মূলকে ব্রাউজ করবে যা হল http: // localhost: 3000 । ওয়েব পেজে 'হ্যালো ওয়ার্ল্ড' স্ট্রিং পাঠানোর জন্য কলব্যাক ফাংশন ব্যবহার করা হবে।
  4. কলব্যাক ফাংশনে, আমরা স্ট্রিং 'হ্যালো ওয়ার্ল্ড' ক্লায়েন্টকে ফেরত পাঠাচ্ছি। 'Res' প্যারামিটারটি ওয়েব পেজে কন্টেন্ট ফেরত পাঠাতে ব্যবহৃত হয়। এই 'রেস' প্যারামিটারটি এমন কিছু যা 'অনুরোধ' মডিউল দ্বারা সরবরাহ করা হয় যাতে কেউ ওয়েব পৃষ্ঠায় সামগ্রী ফেরত পাঠাতে সক্ষম হয়।
  5. আমরা তখন আমাদের সার্ভার অ্যাপ্লিকেশনটি 3000 নং পোর্টে ক্লায়েন্টের অনুরোধ শুনতে শুনতে ফাংশন ব্যবহার করছি। আপনি এখানে যেকোনো উপলব্ধ পোর্ট নির্দিষ্ট করতে পারেন।

যদি কমান্ডটি সফলভাবে কার্যকর করা হয়, ব্রাউজারে আপনার কোড চালানোর সময় নিম্নলিখিত আউটপুট দেখানো হবে।

আউটপুট:

আউটপুট থেকে,

  • আপনি স্পষ্টভাবে দেখতে পাচ্ছেন যে আমরা যদি পোর্ট 3000 এ লোকালহোস্টের ইউআরএল ব্রাউজ করি, আপনি পৃষ্ঠায় প্রদর্শিত স্ট্রিং 'হ্যালো ওয়ার্ল্ড' দেখতে পাবেন।
  • কারণ আমাদের কোডে আমরা বিশেষভাবে উল্লেখ করেছি যে সার্ভারটি 3000 নং পোর্টে শোনার জন্য, আমরা এই ইউআরএলে ব্রাউজ করার সময় আউটপুট দেখতে সক্ষম।

রুট কি?

রাউটিং একটি নির্দিষ্ট এন্ডপয়েন্টে একটি ক্লায়েন্টের অনুরোধের সাড়া দেওয়ার উপায় নির্ধারণ করে।

উদাহরণস্বরূপ, একজন ক্লায়েন্ট বিভিন্ন URL- এর জন্য যেমন GET, POST, PUT বা DELETE HTTP অনুরোধ করতে পারেন যেমন নিচে দেখানো হয়েছে; | _+_ |

উপরের উদাহরণে,

  • যদি প্রথম ইউআরএলের জন্য একটি জিইটি অনুরোধ করা হয়, তাহলে প্রতিক্রিয়াটি আদর্শভাবে বইগুলির একটি তালিকা হওয়া উচিত।
  • যদি দ্বিতীয় URL এর জন্য GET অনুরোধ করা হয়, তাহলে প্রতিক্রিয়াটি আদর্শভাবে ছাত্রদের একটি তালিকা হওয়া উচিত।
  • সুতরাং অ্যাক্সেস করা URL এর উপর ভিত্তি করে, ওয়েব সার্ভারে একটি ভিন্ন কার্যকারিতা চালু করা হবে এবং সেই অনুযায়ী, প্রতিক্রিয়াটি ক্লায়েন্টকে পাঠানো হবে। এটি রাউটিং এর ধারণা।

প্রতিটি রুটে এক বা একাধিক হ্যান্ডলার ফাংশন থাকতে পারে, যা রুট মিলে গেলে কার্যকর করা হয়।

একটি রুট এর সাধারণ সিনট্যাক্স নিচে দেখানো হয়েছে | _+_ |

যেখানে,

1) অ্যাপটি এক্সপ্রেস মডিউলের একটি উদাহরণ

2) পদ্ধতি হল একটি HTTP অনুরোধ পদ্ধতি (GET, POST, PUT বা DELETE)

3) PATH সার্ভারে একটি পথ।

4) হ্যান্ডলার হল ফাংশনটি কার্যকর করা হয় যখন রুট মিলে যায়।

আসুন আমরা এক্সপ্রেসে রুটগুলি কীভাবে প্রয়োগ করতে পারি তার একটি উদাহরণ দেখি। আমাদের উদাহরণ হিসাবে 3 টি রুট তৈরি করবে

  1. A /Node রুট যা 'Node on Tutorial' স্ট্রিং প্রদর্শন করবে যদি এই রুটটি অ্যাক্সেস করা হয়
  2. একটি /কৌণিক রুট যা স্ট্রিং 'টিউটোরিয়াল অন অ্যাঙ্গুলার' প্রদর্শন করবে যদি এই রুটটি অ্যাক্সেস করা হয়
  3. একটি ডিফল্ট রুট / যা স্ট্রিং প্রদর্শন করবে 'Guru99 টিউটোরিয়ালে স্বাগতম।'

আমাদের প্রাথমিক কোড আগের উদাহরণগুলির মতোই থাকবে। নিচের স্নিপেটটি হল একটি অ্যাড-অন কিভাবে রাউটিং বাস্তবায়িত হয় তা দেখানোর জন্য।

http://localhost:3000/Books http://localhost:3000/Students

কোড ব্যাখ্যা:

  1. এখানে আমরা একটি রুট সংজ্ঞায়িত করছি যদি ইউআরএল http: // localhost: 3000/নোড ব্রাউজারে নির্বাচিত হয়। রুটে, আমরা একটি কলব্যাক ফাংশন সংযুক্ত করছি যা নোড ইউআরএলে ব্রাউজ করার সময় বলা হবে।

    ফাংশনে 2 টি প্যারামিটার রয়েছে।

  • আমরা যে প্রধান প্যারামিটারটি ব্যবহার করব তা হল 'res' প্যারামিটার, যা ক্লায়েন্টকে তথ্য ফেরত পাঠাতে ব্যবহার করা যেতে পারে।
  • 'Req' প্যারামিটারে অনুরোধ করা সম্পর্কে তথ্য রয়েছে। কখনও কখনও অনুরোধের অংশ হিসাবে অতিরিক্ত পরামিতি পাঠানো যেতে পারে, এবং সেইজন্য পাঠানো অতিরিক্ত পরামিতিগুলি খুঁজে পেতে 'req' প্যারামিটার ব্যবহার করা যেতে পারে।
  1. নোড রুট নির্বাচন করা হলে আমরা ক্লায়েন্টকে 'টিউটোরিয়াল অন নোড' স্ট্রিং পাঠানোর জন্য সেন্ড ফাংশন ব্যবহার করছি।
  2. এখানে আমরা একটি রুট সংজ্ঞায়িত করছি যদি ইউআরএল http: // localhost: 3000/কৌণিক ব্রাউজারে নির্বাচিত হয়। রুটটিতে, আমরা একটি কলব্যাক ফাংশন সংযুক্ত করছি যা কৌণিক URL এ ব্রাউজ করার সময় বলা হবে।
  3. কৌণিক রুট নির্বাচন করা হলে আমরা ক্লায়েন্টকে 'টিউটোরিয়াল অন কৌণিক' স্ট্রিং পাঠাতে সেন্ড ফাংশন ব্যবহার করছি।
  4. এটি একটি ডিফল্ট রুট যা বেছে নেওয়া হয় যখন কেউ অ্যাপ্লিকেশনটির রুটে ব্রাউজ করে - http: // localhost: 3000 । যখন ডিফল্ট রুট নির্বাচন করা হয়, ক্লায়েন্টকে 'ওয়েলকাম টু গুরু 99 টিউটোরিয়াল' বার্তা পাঠানো হবে।

যদি কমান্ডটি সফলভাবে কার্যকর করা হয়, ব্রাউজারে আপনার কোড চালানোর সময় নিম্নলিখিত আউটপুট দেখানো হবে।

আউটপুট:

আউটপুট থেকে,

  • আপনি স্পষ্টভাবে দেখতে পাচ্ছেন যে আমরা যদি পোর্ট 3000 এ লোকালহোস্টের ইউআরএল ব্রাউজ করি, তাহলে আপনি পৃষ্ঠায় প্রদর্শিত 'গুরু 99 টিউটোরিয়ালে স্বাগতম' স্ট্রিং দেখতে পাবেন।
  • কারণ আমাদের কোডে, আমরা উল্লেখ করেছি যে আমাদের ডিফল্ট URL এই বার্তাটি প্রদর্শন করবে।

আউটপুট থেকে,

  • আপনি দেখতে পারেন যে যদি ইউআরএল /নোডে পরিবর্তন করা হয়, তাহলে সংশ্লিষ্ট নোডের রুট বেছে নেওয়া হবে এবং 'টিউটোরিয়াল অন নোড' স্ট্রিংটি প্রদর্শিত হবে।

আউটপুট থেকে,

  • আপনি দেখতে পারেন যে যদি ইউআরএল /এঙ্গুলারে পরিবর্তন করা হয়, তাহলে সংশ্লিষ্ট নোড রুট বেছে নেওয়া হবে এবং স্ট্রিং 'টিউটোরিয়াল অন অ্যাঙ্গুলার' প্রদর্শিত হবে।

Express.js ব্যবহার করে নমুনা ওয়েব সার্ভার

আমাদের উপরের উদাহরণ থেকে, আমরা দেখেছি কিভাবে আমরা রাউটিং এর উপর ভিত্তি করে কোন আউটপুট দেখাতে হবে তা নির্ধারণ করতে পারি। এই ধরণের রাউটিং হল সবচেয়ে আধুনিক ওয়েব অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়। ওয়েব সার্ভারের অন্য অংশ হল নোড জেএস -এ টেমপ্লেট ব্যবহার করা।

দ্রুত অন-ফ্লাই নোড অ্যাপ্লিকেশন তৈরি করার সময়, অ্যাপ্লিকেশনটির জন্য টেমপ্লেট ব্যবহার করা একটি সহজ এবং দ্রুত উপায়। টেমপ্লেট তৈরির জন্য বাজারে অনেক কাঠামো পাওয়া যায়। আমাদের ক্ষেত্রে, আমরা টেমপ্লেটিংয়ের জন্য জেড কাঠামোর উদাহরণ নেব।

জেড নোড প্যাকেজ ম্যানেজারের মাধ্যমে ইনস্টল করা হয়। কমান্ড লাইনে নিচের লাইনটি সম্পাদন করে এটি করা যেতে পারে

npm ইন্সটল জেড

উপরের কমান্ডটি নোড প্যাকেজ ম্যানেজারকে প্রয়োজনীয় জেড মডিউল ডাউনলোড করতে এবং সে অনুযায়ী ইনস্টল করার অনুরোধ করে।

বিঃদ্রঃ: নোড জেডের সর্বশেষ সংস্করণে অপ্রচলিত করা হয়েছে। পরিবর্তে, পগ ব্যবহার করুন।

আসুন আমাদের নতুন ইনস্টল করা জেড ফ্রেমওয়ার্ক ব্যবহার করি এবং কিছু মৌলিক টেমপ্লেট তৈরি করি।

ধাপ 1) প্রথম ধাপ হল একটি জেড টেমপ্লেট তৈরি করা। Index.jade নামে একটি ফাইল তৈরি করুন এবং নিচের কোডটি োকান। 'ভিউস' ফোল্ডারে ফাইল তৈরি করা নিশ্চিত করুন

  1. এখানে আমরা নির্দিষ্ট করে দিচ্ছি যে এই টেমপ্লেটটি আহ্বান করা হলে পৃষ্ঠার শিরোনামটি যে কোনও মান পাস করা হবে।
  2. আমরা এটাও উল্লেখ করছি যে হেডার ট্যাগের টেক্সটটি জেড টেমপ্লেটে যা কিছু পাস হবে তা প্রতিস্থাপিত হবে।

app.METHOD(PATH, HANDLER)

কোড ব্যাখ্যা:

  1. অ্যাপ্লিকেশনটিতে উল্লেখ করার প্রথম জিনিস হল 'ভিউ ইঞ্জিন' যা টেমপ্লেটগুলি রেন্ডার করতে ব্যবহৃত হবে। যেহেতু আমরা আমাদের টেমপ্লেটগুলি রেন্ডার করতে জেড ব্যবহার করতে যাচ্ছি, আমরা সেই অনুযায়ী এটি নির্দিষ্ট করি।
  2. রেন্ডার ফাংশন একটি ওয়েব পেজ রেন্ডার করতে ব্যবহৃত হয়। আমাদের উদাহরণে, আমরা টেমপ্লেট (index.jade) রেন্ডার করছি যা আগে তৈরি করা হয়েছিল।
  3. আমরা যথাক্রমে 'শিরোনাম' এবং 'বার্তা' প্যারামিটারগুলিতে 'গুরু 99' এবং 'স্বাগতম' এর মানগুলি পাস করছি। এই মানগুলি 'শিরোনাম', এবং index.jade টেমপ্লেটে ঘোষিত 'বার্তা' প্যারামিটার দ্বারা প্রতিস্থাপিত হবে।

যদি কমান্ডটি সফলভাবে কার্যকর করা হয়, ব্রাউজারে আপনার কোড চালানোর সময় নিম্নলিখিত আউটপুট দেখানো হবে।

আউটপুট:

আউটপুট থেকে,

  • আমরা দেখতে পাচ্ছি যে পৃষ্ঠার শিরোনাম 'গুরু 99' এবং পৃষ্ঠার শিরোনাম 'ওয়েলকাম' সেট করা হয়েছে।
  • এটি জেড টেমপ্লেটের কারণে যা আমাদের নোড জেএস অ্যাপ্লিকেশনটিতে আহ্বান করা হয়।

সারসংক্ষেপ

  • এক্সপ্রেস ফ্রেমওয়ার্ক হল সবচেয়ে সাধারণ কাঠামো যা নোড জেএস অ্যাপ্লিকেশন বিকাশের জন্য ব্যবহৃত হয়। এক্সপ্রেস ফ্রেমওয়ার্কটি node.js ফ্রেমওয়ার্কের উপরে নির্মিত এবং সার্ভার-ভিত্তিক অ্যাপ্লিকেশনগুলির দ্রুত ট্র্যাকিং বিকাশে সহায়তা করে।
  • অনুরোধের ভিত্তিতে ব্যবহারকারীদের ওয়েব অ্যাপ্লিকেশনের বিভিন্ন অংশে ডাইভার্ট করার জন্য রুট ব্যবহার করা হয়। ব্যবহারকারীকে কী দেখানো দরকার তার উপর নির্ভর করে প্রতিটি রুটের প্রতিক্রিয়া ভিন্ন হতে পারে।
  • টেমপ্লেটগুলি একটি দক্ষ পদ্ধতিতে সামগ্রী ইনজেকশনের জন্য ব্যবহার করা যেতে পারে। জেড Node.js অ্যাপ্লিকেশনগুলিতে ব্যবহৃত সবচেয়ে জনপ্রিয় টেমপ্লেটিং ইঞ্জিনগুলির মধ্যে একটি।