নোড.জেএস টিউটোরিয়াল - নতুনদের জন্য একটি সম্পূর্ণ গাইড



এই নোড.জেএস টিউটোরিয়ালটি নোড.জেএস এর বেসিক আর্কিটেকচার, ওয়ার্কিং এবং বিভিন্ন মডিউল সম্পর্কে কথা বলবে এটি নোড.জেএস এবং এক্সপ্রেস.জেএস এর ব্যবহারিক বাস্তবায়নও প্রদর্শন করবে।

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

এই নোড.জেএস টিউটোরিয়ালে আমি নীচের বিষয়গুলি নিয়ে আলোচনা করব:





নোড.জেএস কি?

নোড.জেএস হ'ল একটি শক্তিশালী কাঠামো Chrome এর V8 জাভাস্ক্রিপ্ট ইঞ্জিন যা জাভাস্ক্রিপ্ট সরাসরি নেটিভ মেশিন কোডে সংকলন করে। এটি সার্ভার-সাইড ওয়েব অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হালকা ওজনের ফ্রেমওয়ার্ক এবং সাধারণ সার্ভার-সাইড কার্যকারিতা সরবরাহ করতে জাভাস্ক্রিপ্ট এপিআই প্রসারিত করে। এটি সাধারণত বড় আকারের অ্যাপ্লিকেশন বিকাশের জন্য ব্যবহৃত হয়, বিশেষত ভিডিও স্ট্রিমিং সাইটগুলি, একক পৃষ্ঠার অ্যাপ্লিকেশন এবং অন্যান্য ওয়েব অ্যাপ্লিকেশনগুলির জন্য। নোড.জেএস তোলে ইভেন্ট-চালিত, অ-ব্লক করা আই / ও মডেল ব্যবহার যা এটি ডেটা-ইনটেনসিভ রিয়েল-টাইম অ্যাপ্লিকেশনগুলির জন্য সঠিক চয়ন করে।

অন্যান্য প্রোগ্রামিং ভাষার মতো নোড.জেএস প্যাকেজ এবং মডিউল ব্যবহার করে। এগুলি এমন লাইব্রেরি যা বিভিন্ন ফাংশন ধারণ করে এবং এনএমপি (নোড প্যাকেজ ম্যানেজার) থেকে আমাদের কোডে আমদানি করা হয় এবং প্রোগ্রামগুলিতে ব্যবহার হয়। নোড.জেএস সংজ্ঞায়িত কয়েকটি প্রধান বৈশিষ্ট্য নীচে তালিকাভুক্ত করা হয়েছে:



নোড.জেএস এর বৈশিষ্ট্য

  1. মুক্ত উৎস
    নোড.জেএস একটি ওপেন সোর্স ফ্রেমওয়ার্ক এমআইটি লাইসেন্স যা একটি বিশাল সম্প্রদায় দ্বারা সমর্থিত। এর সম্প্রদায়টি নোড.জেএস অ্যাপ্লিকেশনগুলিতে নতুন ক্ষমতা যুক্ত করতে বেশ সক্রিয় রয়েছে।
  2. সহজ এবং দ্রুত
    যেহেতু নোড.জেএস গুগল ক্রোমের ভি 8 জাভাস্ক্রিপ্ট ইঞ্জিনে নির্মিত তাই এর লাইব্রেরিগুলি দ্রুত কোড প্রয়োগের জন্য সক্ষম।
  3. অ্যাসিঙ্ক্রোনাস
    নোড.জেএস এর সমস্ত লাইব্রেরি অ্যাসিনক্রোনাস যার অর্থ নোড.জেএস ভিত্তিক সার্ভারগুলি কোনও এপিআইয়ের প্রতিক্রিয়া ফেরত পাঠাতে এবং পরবর্তী API এ যাওয়ার জন্য অপেক্ষা করে না।
  4. উচ্চ স্কেলিবিলিটি
    ইভেন্ট মেকানিজমের কারণে, নোড.জেএস অত্যন্ত স্কেলযোগ্য এবং একটি অবরুদ্ধ প্রতিক্রিয়াতে সার্ভারকে সহায়তা করে।
  5. একক থ্রেড
    ইভেন্ট লুপিংয়ের সাহায্যে নোড.জেএস একক থ্রেডযুক্ত মডেলটি অনুসরণ করতে সক্ষম। এটি একক প্রোগ্রামকে একাধিক অনুরোধগুলি পরিচালনা করতে দেয়।
  6. কোনও বাফারিং নেই
    নোড.জেএস অ্যাপ্লিকেশনগুলির একটি বড় কার্যকারিতা হ'ল এটি কোনও ডেটা বাফার করে না।
  7. ক্রস প্ল্যাটফর্ম
    নোড.জেএসগুলি সহজেই উইন্ডোজ, ম্যাক এবং লিনাক্সের মতো বিভিন্ন প্ল্যাটফর্মগুলিতে তৈরি এবং স্থাপন করা যায়।

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

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

এনপিএম (নোড প্যাকেজ ম্যানেজার)

এনপিএম এর অর্থ নোড প্যাকেজ ম্যানেজার যা নাম অনুসারে নোড.জেএস প্যাকেজ / মডিউলগুলির জন্য একটি প্যাকেজ ম্যানেজার। নোড সংস্করণ থেকে 0.6.0। এর পরে, নোড ইনস্টলেশনতে npm ডিফল্ট হিসাবে যুক্ত করা হয়েছে। এটি আপনাকে স্পষ্টভাবে এনএমপি ইনস্টল করার ঝামেলা থেকে বাঁচায়।



এনপিএম মূলত দুটি উপায়ে সহায়তা করে:

জাভা প্রিন্ট রাইটার কি
  1. Node.js প্যাকেজ / মডিউলগুলির জন্য অনলাইন সংগ্রহস্থল সরবরাহ করে এবং হোস্ট করে যা আমাদের প্রকল্পগুলিতে সহজেই ডাউনলোড এবং ব্যবহার করা যায়। আপনি এখানে তাদের খুঁজে পেতে পারেন: npmjs.com
  2. বিভিন্ন নোড.জেএস প্যাকেজ ইনস্টল করতে, নোড.জেএস সংস্করণ এবং প্যাকেজগুলির নির্ভরতা পরিচালনা করতে কমান্ড লাইন ইউটিলিটি সরবরাহ করে।

তবে এখন, আপনি অবশ্যই ভাবছেন যে এই মডিউলগুলি ঠিক কী এবং তারা কীভাবে নোড.জেএস অ্যাপ্লিকেশন তৈরি করতে আমাদের সহায়তা করে। ঠিক আছে, এই নোড.জেএস টিউটোরিয়ালের পরবর্তী বিভাগে, আমি আপনাকে নোড.জেএস মডিউল সম্পর্কে একটি সম্পূর্ণ অন্তর্দৃষ্টি দেব।

নোড.জেএস মডিউল

নোড.জেজে মডিউলগুলি বিভিন্ন কার্যকারিতা উপস্থাপন করে যা একক বা একাধিক জেএস ফাইলগুলিতে বান্ডিল করা হয়। এই মডিউলগুলির একটি অনন্য প্রসঙ্গ রয়েছে, সুতরাং এগুলি কখনও কখনও অন্য মডিউলগুলির ক্ষেত্রকে হস্তক্ষেপ বা দূষিত করে না।

এই মডিউলগুলি কোডের পুনঃব্যবহারযোগ্যতা সক্ষম করে এবং সহজে ব্যবহারের সহজ করে তোলে। নোড.জেএস মূলত তিন ধরণের মডিউল সরবরাহ করে:

  1. কোর মডিউলগুলি
  2. স্থানীয় মডিউল
  3. তৃতীয় পক্ষের মডিউল

কোর মডিউল

যেহেতু নোড.জেএস একটি খুব হালকা ওজন ফ্রেমওয়ার্ক, মূল মডিউলগুলি সর্বনিম্ন ন্যূনতম কার্যকারিতা বান্ডিল করে। নোড প্রক্রিয়াটি কার্যকর হওয়ার শুরু হলে এই মডিউলগুলি সাধারণত লোড হয়। আপনাকে যা করতে হবে তা হ'ল এই কোডগুলি আপনার কোডটিতে ব্যবহার করার জন্য এই মডিউলগুলি আমদানি করুন।

নীচে আমি কয়েকটি গুরুত্বপূর্ণ কোর মডিউলগুলি নীচে তালিকাভুক্ত করেছি।

কোর মডিউল বর্ণনা
http নোড.জেএস এইচটিটিপি সার্ভার তৈরি করতে প্রয়োজনীয় ক্লাস, পদ্ধতি এবং ইভেন্ট রয়েছে
url নোডে ইউআরএল রেজোলিউশন এবং পার্সিংয়ের জন্য পদ্ধতি রয়েছে
জিজ্ঞাসাবাদ নোডের ক্যোয়ারী স্ট্রিংয়ের সাথে মোকাবিলা করার পদ্ধতি রয়েছে
পথ ফাইল পাথ মোকাবেলা করার পদ্ধতি রয়েছে
fs I / O ফাইল সহ কাজ করার জন্য ক্লাস, পদ্ধতি এবং ইভেন্টগুলি রয়েছে
উপকারী ইউটিলিটি ফাংশন রয়েছে যা প্রোগ্রামারদের জন্য দরকারী হতে পারে

আপনি নীচের কোডটি ব্যবহার করে আপনার মূল মডিউলটি লোড করতে পারেন:

var মডিউল = প্রয়োজন ('মডিউল_নাম')

এখন দেখতে দিন, 'স্থানীয় মডিউলগুলি' কী।

স্থানীয় মডিউল

নোড.জেএস এর স্থানীয় মডিউলগুলি কাস্টম মডিউল যা ব্যবহারকারী / বিকাশকারীরা স্থানীয়ভাবে অ্যাপ্লিকেশনটিতে তৈরি করে। এই মডিউলগুলির মধ্যে পৃথক ফাইল এবং ফোল্ডারগুলিতে বান্ডিলযুক্ত বিভিন্ন কার্যকারিতা অন্তর্ভুক্ত থাকতে পারে যা NPM ব্যবহার করে Node.js সম্প্রদায়টিতে সহজেই বিতরণ করা যেতে পারে।

এই মডিউলগুলি একইভাবে কোর মডিউলগুলির জন্য লোড করা হয়। আসুন আপনাকে দেখান, কীভাবে এটি একটি মৌলিক উদাহরণ ব্যবহার করে করবেন।

আপনার কাস্টম / স্থানীয় মডিউল.জেএস ফাইল তৈরি করুন

var বিস্তারিত = {নাম: ফাংশন (নাম) {কনসোল.লগ ('নাম:' + নাম) domain, ডোমেন: ফাংশন (ডোমেন) {কনসোল.লগ ('ডোমেন:' + ডোমেন)}} মডিউল.এক্সপোর্টগুলি = বিশদ

আপনার মূল অ্যাপ্লিকেশন ফাইলে আপনার মডিউল ফাইল অন্তর্ভুক্ত করুন।

var myLogModule = আবশ্যক ('./ লোকাল_মডিউল.জেএস') myLogModule.name ('এডুরেকা') myLogModule.domain ('শিক্ষা')

এখন আপনি নীচের কমান্ডটি ব্যবহার করে এই ফাইলগুলি কার্যকর করতে পারেন:

নোড আবেদন.js

আমাকে এখন আপনাকে বাহ্যিক মডিউলগুলি কী তা দেখাতে দিন।

বাহ্যিক মডিউলগুলি

আপনি বহিরাগত বা 3 ব্যবহার করতে পারেনআরডিপার্টি মডিউলগুলি কেবল এনপিএম এর মাধ্যমে ডাউনলোড করে। এই মডিউলগুলি সাধারণত অন্যান্য বিকাশকারীদের দ্বারা বিকাশিত হয় এবং ব্যবহারের জন্য নিখরচায়। এক্সটার্নেট, রিএ্যাক্ট, গল্প, মঙ্গুজ, মোচা ইত্যাদি সেরা বাহ্যিক মডিউলগুলির মধ্যে কয়েকটি are

বিশ্বব্যাপী তৃতীয় পক্ষের মডিউলগুলি লোড হচ্ছে:

এনপিএম ইনস্টল - জি

আপনার মূল অ্যাপ্লিকেশন ফাইলে আপনার মডিউল ফাইল অন্তর্ভুক্ত করুন:

এনপিএম ইনস্টল - সেভ

JSON ফাইল

দ্য প্যাকেজ.জসন ফাইল নোড.জেএস এ সম্পূর্ণ অ্যাপ্লিকেশনটির হৃদয়। এটি মূলত ম্যানিফেস্ট ফাইল যা প্রকল্পের মেটাডেটা ধারণ করে। সুতরাং, সফল নোড প্রকল্পের বিকাশের জন্য এই ফাইলটি বোঝা এবং তার সাথে কাজ করা অত্যন্ত গুরুত্বপূর্ণ হয়ে ওঠে।

প্যাকেজ.জসন ফাইলটিতে সাধারণত অ্যাপ্লিকেশনটির মেটাডেটা থাকে যা আরও নীচে দুটি বিভাগে শ্রেণিবদ্ধ করা হয়:

  1. মেটাডেটা বৈশিষ্ট্য সনাক্তকরণ: এতে প্রোজেক্টের নাম, বর্তমান মডিউল সংস্করণ, লাইসেন্স, প্রকল্পের লেখক, প্রকল্পের বিবরণ ইত্যাদির মতো বৈশিষ্ট্য রয়েছে
  1. সরাসরি ফাইলের লিখন: আপনি সরাসরি আপনার প্রকল্পে প্যাকেজ.জসন ফাইলের মধ্যে প্রয়োজনীয় তথ্য লিখতে এবং এটি অন্তর্ভুক্ত করতে পারেন।

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

নোড.জেএস বেসিক্স

নোড.জেএস যেহেতু একটি জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক, তাই এটি জাভাস্ক্রিপ্ট সিনট্যাক্স ব্যবহার করে। আপনি যদি জাভাস্ক্রিপ্ট বিস্তারিতভাবে শিখতে চান তবে আপনি এটি উল্লেখ করতে পারেন । আপাতত, আমি আপনাকে কিছু নোড.জেএস বেসিকগুলি যেমন:

তথ্যের ধরণ

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

আদিম তথ্য প্রকারগুলি হ'ল:

  1. স্ট্রিং
  2. সংখ্যা
  3. বুলিয়ান
  4. শূন্য
  5. অপরিবর্তিত

প্রিমিটিভ ডেটা প্রকারগুলি হ'ল:

  1. অবজেক্ট
  2. তারিখ
  3. অ্যারে

পরিবর্তনশীল

পরিবর্তনশীল হ'ল এমন একটি সত্তা যা মানগুলি ধারণ করে যা কোনও প্রোগ্রাম চলাকালীন পরিবর্তিত হতে পারে। নোড.জেজে একটি ভেরিয়েবল তৈরি করতে আপনার একটি সংরক্ষিত কীওয়ার্ড ভের ব্যবহার করতে হবে। সংকলক স্বয়ংক্রিয়ভাবে এটিকে বেছে নেওয়ার কারণে আপনাকে কোনও ডেটা টাইপ বরাদ্দ করতে হবে না।

বাক্য গঠন:

var varName = মান

অপারেটর

নোড.জেএস নীচের অপারেটরদের সমর্থন করে:

অপারেটর প্রকার অপারেটর
পাটিগণিত +, -, /, *,%, ++, -
অর্পণ =, + =, - =, * =, / =,% =
শর্তাধীন =?
তুলনা ==, ===,! =,! ==,>,> =,<, <=,
যৌক্তিক &&, || ,!
বিটওয়াইজ &, |, ^, ~,<>, >>>

কার্যাদি

নোড.জেজে ফাংশন কোডের একটি ব্লক যার একটি নাম রয়েছে এবং এটি একটি নির্দিষ্ট টাস্ক অর্জনের জন্য লেখা হয় written এটি তৈরি করতে আপনার কীওয়ার্ড ফাংশনটি ব্যবহার করতে হবে। একটি ফাংশন সাধারণত একটি দ্বি-পদক্ষেপ প্রক্রিয়া। প্রথমটি ফাংশনটি সংজ্ঞায়িত করা হচ্ছে এবং দ্বিতীয়টি এটিটি চালাচ্ছে। নীচে একটি ফাংশন তৈরি এবং আমন্ত্রণ করার বাক্য গঠন রয়েছে:

উদাহরণ:

// একটি ফাংশন ফাংশন ডিসপ্লে_ নাম (প্রথম নাম, শেষ নাম) {সতর্কতা ('হ্যালো' + ফার্স্টনাম + '' + লাস্টনাম)} // ফাংশন ডিসপ্লে_নাম ('পার্ক', 'জিমিন')

অবজেক্টস

একটি অবজেক্ট হ'ল একটি অ-আদিম ডাটা টাইপ যা বৈশিষ্ট্য এবং পদ্ধতির ক্ষেত্রে একাধিক মান ধরে রাখতে পারে। ক্লাসের ধারণা নেই বলে নোড.জেএস অবজেক্টস স্ট্যান্ডলোন সত্তা। আপনি দুটি উপায়ে একটি বস্তু তৈরি করতে পারেন:

  1. আক্ষরিক বস্তু ব্যবহার করে
  2. অবজেক্ট কনস্ট্রাক্টর ব্যবহার করে

উদাহরণ:

বৈশিষ্ট্য এবং পদ্ধতি ভের কর্মচারী সহ // বস্তু = {// বৈশিষ্ট্য ফার্স্ট নাম: 'মিনহো', শেষ নাম: 'ছোই', বয়স: 35, বেতন: 50000, // পদ্ধতি getFullName: ফাংশন () {এই ফিরিয়ে দিন '' + this.lastName}

নথি ব্যবস্থা

দৈহিক ফাইল সিস্টেম অ্যাক্সেস করতে, নোড.জেএস এর ব্যবহার করে fs মডিউল যা মূলত সমস্ত অ্যাসিনক্রোনাস এবং সিঙ্ক্রোনাস ফাইল I / O ক্রিয়াকলাপগুলির যত্ন নেয়। এই মডিউলটি নীচের কমান্ডটি ব্যবহার করে আমদানি করা হয়েছে:

var fs = প্রয়োজনীয় ('fs')

ফাইল সিস্টেম মডিউলগুলির জন্য কিছু সাধারণ ব্যবহার হ'ল:

  • ফাইল পড়ুন
    1. fs.readFile ()
var http = প্রয়োজনীয় ('http') var fs = প্রয়োজনীয় ('fs') http.createServer (ফাংশন (req, res) {fs.readFile ('স্ক্রিপ্ট.টেক্সট', ফাংশন (ত্রুটি, ডেটা) {res.writHead ( 200, Content 'কন্টেন্ট-টাইপ': 'টেক্সট / এইচটিএমএল'}) রেজ.উইট (ডেটা) রিসেন্ড (উপস্থাপনা) ()}) listen) শুনুন (8080)
  • ফাইল তৈরি করুন
    1. appendFile ()
    2. খোলা ()
    3. লেখার ফাইল ()
  • ফাইল আপডেট করুন
    1. fs.appendFile ()
    2. fs.writeFile ()
  • ফাইল মুছে দিন
    1. fs.unlink ()
  • ফাইলগুলির নাম পরিবর্তন করুন
    1. fs.rename ()

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

ইভেন্টগুলি

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

মূলত, নোড.জেএস অ্যাপ্লিকেশনটিতে একটি প্রধান লুপ থাকে যা ইভেন্টগুলির জন্য অপেক্ষা করে এবং শোনায় এবং কোনও ইভেন্ট শেষ হয়ে গেলে এটি তাত্ক্ষণিকভাবে একটি কলব্যাক ফাংশন শুরু করে।

পিএইচপি কিভাবে অ্যারে প্রিন্ট করতে হয়

চিত্রের নীচে চিত্রগুলি কীভাবে নোড.জেজেসগুলিতে চালিত হয় তা উপস্থাপন করে dia

থ্রেড মডেল - নোড.জেএস টিউটোরিয়াল - এডুরেকা

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

ইভেন্ট শ্রোতার কাছে ইভেন্টকে বাঁধাই

// আমদানি ইভেন্ট মডিউল var my_Events = আবশ্যক ('ইভেন্ট') // একটি ইভেন্টএমিটার অবজেক্ট তৈরি করুন my_EveEmitter = নতুন my_Events.EventEmitter ()

একটি ইভেন্টের সাথে ইভেন্ট হ্যান্ডলারকে বাঁধাই

// বাইন্ডিং ইভেন্ট এবং ইভেন্ট হ্যান্ডলার my_EveEmitter.on ('ইভেন্টনাম', ইভেন্টহ্যান্ডলার)

একটি ইভেন্ট চালানো

// একটি ইভেন্ট my_EveEmitter.emit ('ইভেন্ট নাম') ফায়ার করুন

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

var emitter = আবশ্যক ('ইভেন্ট')। ইভেন্টইমিটার ফাংশন পুনরাবৃত্তিপ্রসেসর (সংখ্যা) em var emt = নতুন ইমিটার () সেটটাইমআউট (ফাংশন ()) {এর জন্য (var i = 1 i & lt = num i ++) t emt.emit ('পূর্বপ্রসারণ') , i) কনসোল.লগ ('প্রক্রিয়াজাতকরণ Iteration:' + i) emt.emit ('আফটারপ্রসেস', i)}}, 5000) ফেরত emt} var it = পুনরাবৃত্তিপ্রসেসর (5) it.on ('পূর্বেপ্রসেস'), ফাংশন ( তথ্য) so কনসোল.লগ ('তথ্যগুলির জন্য প্রক্রিয়া শুরু করা) it) এটি.ন (' আফটারপ্রসেস ', ফাংশন (তথ্য) so কনসোল.লগ (' তথ্যগুলির জন্য প্রক্রিয়া শেষ হচ্ছে))

এই নোড.জেএস টিউটোরিয়ালের পরবর্তী বিভাগে, আমি আপনাকে এইচটিটিপি মডিউল নামে পরিচিত নোড.জেএস এর অন্যতম গুরুত্বপূর্ণ মডিউল সম্পর্কে অন্তর্দৃষ্টি দেব।

এইচটিটিপি মডিউল

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

কেবলমাত্র নীচের কোডটি লিখে আপনি সহজেই আপনার নোড.জেএস অ্যাপ্লিকেশনটিতে এই মডিউলটি অন্তর্ভুক্ত করতে পারেন:

var http = প্রয়োজনীয় ('http')

নীচে আমি একটি কোড লিখেছি, যা দেখায় যে কীভাবে একটি ওয়েব সার্ভার নোড.জেএস তে বিকাশ করা হয়েছে।

সি ++ এ রেফারেন্স দ্বারা কল করুন
// কলিংয়ের লাইব্রেরি ভের HTTP = প্রয়োজন ('HTTP') var url = প্রয়োজনীয় ('url') // সার্ভার তৈরির সার্ভার = http.createServer (ফাংশন (req, res) {// সেটিং কনটেন্ট শিরোনাম res.writHead ( 200, ('কন্টেন্ট-টাইপ', 'টেক্সট / এইচটিএমএল')) var q = url.parse (req.url, সত্য)। জিজ্ঞাসা var txt = q.year + '' + q.month // প্রতিক্রিয়াতে স্ট্রিং প্রেরণ res.end (txt) //) // 8082 সার্ভার শ্রবণ পোর্ট সার্ভার হিসাবে অর্পণ করা হচ্ছে।

এই নোড.জেএস টিউটোরিয়ালের পরবর্তী বিভাগে, আমি এক্সপ্রেস.জেএস সম্পর্কে কথা বলব যা সার্ভার-সাইড ওয়েব অ্যাপ্লিকেশন বিকাশের জন্য ভারী ব্যবহৃত হয়।

এক্সপ্রেস.জেএস

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

এক্সপ্রেস.জেএস বলা হয় নোড.জেএস এর মিডলওয়্যার মডিউলটিতে সংযোগ । সংযোগ মডিউলটি আরও ব্যবহার করে http নোড.জেএস এর সাথে যোগাযোগের জন্য মডিউল সুতরাং, আপনি যদি কোনও সংযুক্ত ভিত্তিক মিডলওয়্যার মডিউলগুলির সাথে কাজ করে থাকেন তবে আপনি এক্সপ্রেস.জেজে সহজেই সংহত করতে পারেন।

কেবল এটিই নয়, এক্সপ্রেস.জেএস এর বেশ কয়েকটি বড় সুবিধা হ'ল:

  • ওয়েব অ্যাপ্লিকেশন বিকাশ দ্রুততর করে তোলে
  • একক পৃষ্ঠা, মাল্টি-পৃষ্ঠা এবং সংকর ধরণের মোবাইল এবং ওয়েব অ্যাপ্লিকেশন তৈরিতে সহায়তা করে
  • এক্সপ্রেস দুটি জেমাল এবং ইজেএস নামক দুটি টেম্প্লেটিং ইঞ্জিন সরবরাহ করে
  • এক্সপ্রেস মডেল-ভিউ-কন্ট্রোলার (এমভিসি) আর্কিটেকচার অনুসরণ করে
  • মংগোডিবি, রেডিস, মাইএসকিউএল এর মতো ডাটাবেসের সাথে একীকরণ করে
  • মিডলওয়্যার পরিচালনা করার ক্ষেত্রে একটি ত্রুটি সংজ্ঞা দেয়
  • অ্যাপ্লিকেশনটির জন্য কনফিগারেশন এবং কাস্টমাইজেশন সহজ করে তোলে।

এই সমস্ত বৈশিষ্ট্য সহ, এক্সপ্রেস MEAN স্ট্যাকের ব্যাকএন্ড অংশের দায়িত্ব নেয়। মিন স্ট্যাক হ'ল ওপেন সোর্স জাভাস্ক্রিপ্ট সফ্টওয়্যার স্ট্যাক যা গতিশীল ওয়েবসাইট এবং ওয়েব অ্যাপ্লিকেশন তৈরিতে ব্যবহৃত হয়। এখানে, অর্থ জন্য দাঁড়িয়েছে এম অনগোডিবি, আইএস xpress.js, প্রতি ngularJS, এবং এন ode.js.

এক্সপ্রেস.জে কীভাবে আমাদের কাজ সহজ করার জন্য নোড.জেএস এর সাথে কাজ করে তা বোঝার জন্য এখন একটি সাধারণ উদাহরণ দেখতে দিন। তবে আপনি এক্সপ্রেস.জেএস এর সাথে কাজ শুরু করার আগে আপনার এটি আপনার সিস্টেমে ইনস্টল করা দরকার।

এক্সপ্রেস.জেগুলি বিশ্বব্যাপী ইনস্টল করতে আপনি নীচের আদেশটি ব্যবহার করতে পারেন:

এনপিএম ইনস্টল -জি এক্সপ্রেস

অথবা, আপনি যদি স্থানীয়ভাবে এটি আপনার প্রকল্প ফোল্ডারে ইনস্টল করতে চান তবে আপনাকে নীচের আদেশটি কার্যকর করতে হবে:

এনপিএম এক্সপ্রেস - সেভ ইনস্টল করুন

যেহেতু আমরা সমস্ত প্রস্তুতি সম্পন্ন করেছি, এখন আসুন সরাসরি ব্যবহারিক প্রয়োগে ঝাঁপ দাও। এখানে আমি নোড.জেএস এবং এক্সপ্রেস.জেএস ব্যবহার করে একটি সাধারণ ব্যবহারকারী প্রমাণীকরণ অ্যাপ্লিকেশন দেখাব।

এক্সপ্রেস.জেএস সহ নোড.জেএস টিউটোরিয়াল ধাপে ধাপে অ্যাপ্লিকেশন বিকাশ

এর জন্য আমাদের ফাইলগুলির নীচে প্রয়োজন হবে:

  • package.json
  • স্ক্রিপ্ট.জেএস
  • মতামত
    • index.jade
    • login.jade
    • Safe.jade
    • unauthorised.jade
    • স্বাগতম.জাদে
  • lib
    • ways.js

সুতরাং, এর সাথে শুরু করা যাক package.json

author 'লেখক': 'এডুরেকা', 'নাম': 'এক্সপ্রেস_ডেমো', 'বিবরণ': 'এক্সপ্রেস উইথ নোড.জেএস', 'সংস্করণ': '0.0.0', 'স্ক্রিপ্ট': start 'শুরু': 'নোড স্ক্রিপ্ট.জেএস '},' ইঞ্জিন ': n' নোড ':' ~ 0.4.12 '},' নির্ভরতা ': connect' কানেক্ট-ফ্ল্যাশ ':' ^ 0.1.1 ',' কুকি-পার্সার ':' ^ 1.4 .3 ',' এক্সপ্রেস ':' ^ 3.21.2 ',' জেড ':' ^ 0.20.3 ',' রেক-ফ্ল্যাশ ':' 0.0.3 '},' দেবনির্ভরতা ': {}

এর পরে, আপনার এটি তৈরি করতে হবে স্ক্রিপ্ট.জেএস

var এক্সপ্রেস = প্রয়োজনীয় ('এক্সপ্রেস') ভের HTTP = প্রয়োজনীয় ('HTTP') var পোর্ট = 8999 var অ্যাপ = এক্সপ্রেস () কনস্ট ফ্ল্যাশ = প্রয়োজন ('সংযুক্ত-ফ্ল্যাশ') var কুকি পার্সার = প্রয়োজনীয় ('কুকি-পার্সার') var সার্ভার = http.createServer (অ্যাপ) ফাংশন চেকআউথ (req, res, পরের) {কনসোল.লগ ('চেকআউথ' + req.url) // যদি লগ ইন না করে থাকে তবে তাদের পরিষেবা / সুরক্ষিত করবেন না (req.url = == '/ সুরক্ষিত' && (! req.session ||! req.session.authenticated))। res.render ('অননুমোদিত', {স্থিতি: 403}) ফিরুন} পরের ()} app.use (ফ্ল্যাশ () ) app.use (কুকি পার্সার ()) app.use (এক্সপ্রেস.অ্যাসিওশন ({গোপন: 'উদাহরণ'})) অ্যাপ্লিকেশন (এক্সপ্রেস.ওডি পার্সার ()) অ্যাপ্লিকেশন (চেকআউথ) অ্যাপ্লিকেশন (app.router) app.set ('ভিউ ইঞ্জিন', 'জ্যাড') app.set ('দেখুন বিকল্পগুলি', {লেআউট: মিথ্যা}) প্রয়োজন ('./ lib /ways.js') (অ্যাপ) app.listen (পোর্ট) কনসোল .log ('পোর্ট% s এ নোড শুনছে', পোর্ট)

এখন, ভিউ নামের একটি ফোল্ডার তৈরি করুন, যার অধীনে আপনি জেড ফাইলগুলি যুক্ত করবেন যা বিভিন্ন পৃষ্ঠা দর্শনগুলির জন্য দায়ী responsible আপনার তৈরি করা প্রথম ভিউ ফাইলটি হ'ল index.jade

!!! 5 এইচটিএমএল (ল্যাং = 'এন') প্রধান শিরোনাম ব্যবহারকারী প্রমাণীকরণের উদাহরণ বডি এইচ 1 কেন্দ্রের প্রমাণীকরণ ডেমো এক্সপ্রেস এইচ 3 ব্যবহার করে এইচ 4 উল: এ (href = '/ নিরাপদ') সুরক্ষিত সামগ্রী লি: এ (href = '/ স্বাগত') স্বাগতম পৃষ্ঠা লি: এ (href = '/ লগআউট') লগআউট

এখন, তৈরি করুন login.jade ফাইল।

!!! 5 এইচটিএমএল (ল্যাং = 'এন') প্রধান শিরোনাম এক্সপ্রেস প্রমাণীকরণের উদাহরণ বডি এইচ 1 কেন্দ্র এই এক্সপ্রেস প্রমাণীকরণের উদাহরণ সাইন ইন পি ব্যবহার করুন ব্যবহারকারী ব্যবহারকারীর নাম এবং জন্য পাস পাসওয়ার্ডের জন্য ফর্ম (পদ্ধতি = 'পোস্ট') পি লেবেল (= 'ব্যবহারকারীর জন্য') ইমেল ঠিকানা ইনপুট (টাইপ = 'টেক্সট', নাম = 'ব্যবহারকারীর নাম', শ্রেণি = 'ফর্ম-নিয়ন্ত্রণ', আইডি = 'উদাহরণস্বরূপ ইনপুটপ্যাসওয়ার্ড 1', স্থানধারক = ' ইমেল ', শৈলী =' প্রস্থ: 400px ') পি সেন্টার লেবেল (জন্য =' পাসওয়ার্ড ') পাসওয়ার্ড ইনপুট (টাইপ =' পাসওয়ার্ড ', নাম =' পাসওয়ার্ড ', শ্রেণি =' ফর্ম-নিয়ন্ত্রণ ', আইডি =' উদাহরণপরিচয় ইনপুট পাসওয়ার্ড 1 ', স্থানধারক = 'পাসওয়ার্ড', শৈলী = 'প্রস্থ: 400px') পি কেন্দ্র জমা দিন - ফ্ল্যাশ h4 (স্টাইল = 'রঙ: লাল') এর প্রতিটি বার্তা # {বার্তা}

পরবর্তী পদক্ষেপটি তৈরি করা হয় স্বাগতম.জাদে

!!! 5 এইচটিএমএল (ল্যাং = 'এন') প্রধান শিরোনাম ব্যবহারকারী প্রমাণীকরণ উদাহরণ বডি এইচ 1 কেন্দ্রটি এডুরেকা টিউটোরিয়ালে স্বাগতম!

পরবর্তী, তৈরি করুন Safe.jade ফাইল।

!!! 5 এইচটিএমএল (ল্যাং = 'এন') শিরোনাম এক্সপ্রেস প্রমাণীকরণের উদাহরণ বডি এইচ 1 কেন্দ্র হাই, সুরক্ষিত ব্যবহারকারী। পি নেভিগেট উল লি: এ (href = '/ সুরক্ষিত') সুরক্ষিত লিখিত লি: একটি (href = '/ স্বাগত') স্বাগতম পৃষ্ঠা লি: একটি (href = '/ লগআউট') লগআউট

এখন, তৈরি করুন unauthorised.jade ফাইল।

!!! 5 এইচটিএমএল (ল্যাং = 'এন') প্রধান শিরোনাম ব্যবহারকারী প্রমাণীকরণের উদাহরণ বডি এইচ 1 কেন্দ্র অননুমোদিত পি আপনি এই পৃষ্ঠাটি দেখতে অনাবৃত। দয়া করে ' অবিরত রাখতে

এখন, আপনাকে একটি ফোল্ডার তৈরি করে নামকরণ করতে হবে lib । এখন, একটি তৈরি করুন রুট.জেএস ফাইল যা সমস্ত পৃষ্ঠাগুলি মানচিত্র করবে।

var ব্যবহার = প্রয়োজনীয় ('ব্যবহারকারীর') মডিউল.এক্সপোর্টগুলি = ফাংশন (অ্যাপ) {app.get ('/', ফাংশন (রেক, রেজ, পরবর্তী) {রেজ.রেেন্ডার ('সূচক') app) অ্যাপ.জেট (' / স্বাগত ', ফাংশন (req, res, next) {res.render (' স্বাগত ') app) app.get (' / সুরক্ষিত ', ফাংশন (req, res, পরবর্তী) {res.render (' সুরক্ষিত ')} ) app.get ('/ লগইন', ফাংশন (req, res, পরবর্তী) {res.render ('লগইন', {ফ্ল্যাশ: req.flash ()}) app) app.post ('/ লগইন', ফাংশন ( req, res, next) {// আপনি এখানে একটি ডাটাবেস চেহারা বা আরও স্কেলযোগ্য কিছু করতে পছন্দ করতে পারেন যদি (req.body.username && req.body.username === 'ব্যবহারকারী' && req.body.password && req.body.password === 'পাস') {req.session.authenticated = সত্য res.redirect ('/ নিরাপদ')} অন্যথায় q req.flash ('ত্রুটি', 'ব্যবহারকারীর নাম এবং পাসওয়ার্ড ভুল') রেজিস। পুনঃনির্দেশ ('/ লগইন')}}) app.get ('/ লগআউট', ফাংশন (req, res, next) re মুছে দিন req.session.authenticated res.redirect ('/')})}

এখন আপনি যদি নিজেরাই এই কোডটি কার্যকর করতে চান তবে আপনি এখান থেকে এটি ডাউনলোড করতে পারেন: নোড.জেএস টিউটোরিয়াল পিডিএফ

এটির সাহায্যে আমরা এই নোড.জেএস টিউটোরিয়ালটি শেষ করব। আমি আশা করি আমি গ্রাউন্ড থেকে নোড.জেএস এর ধারণাটি ব্যাখ্যা করতে সক্ষম হয়েছি।

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

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এই নোড.জেএস টিউটোরিয়ালের মন্তব্য বিভাগে উল্লেখ করুন এবং আমরা আপনার কাছে ফিরে আসব।