লিনাক্সে আপনার প্রথম নোড.জেএস অ্যাপটি কীভাবে লিখবেন


গত কয়েক বছর ধরে ওয়েব বিকাশের ট্রেন্ডগুলি মারাত্মকভাবে পরিবর্তিত হয়েছে এবং একটি ওয়েব বিকাশকারী হিসাবে, আপনার গেমের শীর্ষে থাকতে, সর্বশেষ প্রযুক্তির সাথে আপডেট হওয়া গুরুত্বপূর্ণ।

জাভাস্ক্রিপ্ট হ'ল বর্তমান ট্রেন্ডিং প্রোগ্রামিং ভাষা; এটি নিঃসন্দেহে সম্পূর্ণ স্ট্যাক বিকাশকারীদের দ্বারা ব্যবহৃত সর্বাধিক জনপ্রিয় প্রযুক্তি।

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

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

নোড.জেএস কি?

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

নোড.জেএস এর হৃদয় ইভেন্ট-চালিত প্রোগ্রামিংয়ের উপর ভিত্তি করে; প্রোগ্রামারকে তাই বুঝতে হবে যে কোন ইভেন্টগুলি উপলভ্য এবং কীভাবে তাদের প্রতিক্রিয়া জানানো উচিত।

প্যাকেজ পরিচালনা নোড.জেএস এর অধীনে

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

নোড.জেএস একটি শক্তিশালী এবং নিম্নরূপ কারণে গুরুত্বপূর্ণ:

  • এটি অ্যাসিঙ্ক্রোনাস ইভেন্ট-চালিত, অ-ব্লকিং আই/ও রূপান্তরকরণের মডেল ব্যবহার করে, যা একটি অ্যাপ্লিকেশনটির মাধ্যমে আউটপুট উন্নত করে এবং বাস্তব-বিশ্বের ওয়েব অ্যাপ্লিকেশনগুলির জন্য স্কেলিবিলিটি সমর্থন করে
  • এটি একক থ্রেডযুক্ত তাই এটি যে কোনও সময় কেবলমাত্র 1 টি সিপিইউ ব্যবহার করতে পারে
  • একটি নোড.জেএস ওয়েব অ্যাপ্লিকেশন একটি সম্পূর্ণ ওয়েব সার্ভার উদাহরণস্বরূপ এনগিনেক্স বা অ্যাপাচি
  • এটি শিশু প্রক্রিয়া বাড়ানোর জন্য চাইল্ড_প্রসেস.ফোর্ক() এপিআইয়ের মাধ্যমে থ্রেডগুলি সমর্থন করে এবং একটি ক্লাস্টার মডিউলও সরবরাহ করে

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

  1. লিনাক্স সিস্টেমে সর্বশেষ নোডেজ এবং এনপিএম সংস্করণ ইনস্টল করুন

কীভাবে লিনাক্সে আপনার প্রথম নোড.জেএস অ্যাপ তৈরি করবেন

আপনি একবার নোড.জেস ইনস্টল করে নিলে আপনি যেতে প্রস্তুত। প্রথমে একটি ডিরেক্টরি তৈরি করে শুরু করুন যা আপনার অ্যাপ্লিকেশন ফাইলগুলি সঞ্চয় করবে।

$ sudo mkdir -p /var/www/myapp

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

$ cd /var/www/myapp
$ npm init

এটি আপনাকে বেশ কয়েকটি প্রশ্ন জিজ্ঞাসা করবে, নীচে বর্ণিত হিসাবে কেবল উত্তর দিন এবং [এন্টার] টিপুন। নোট করুন যে প্যাকেজ.জসন র সবচেয়ে গুরুত্বপূর্ণ জিনিসগুলি নীচে বর্ণিত নাম এবং সংস্করণ ক্ষেত্র are

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

এরপরে, একটি সার্ভার.জেএস ফাইল তৈরি করুন।

$ sudo vi server.js

এটিতে নীচের কোডটি অনুলিপি করুন এবং আটকান।

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!');
}).listen(8080);
console.log('Server started on localhost:8080; press Ctrl-C to terminate...!');

এরপরে, নিম্নলিখিত কমান্ডটি ব্যবহার করে আপনার অ্যাপ্লিকেশন শুরু করুন।

$ node server.js
OR
$ npm start

এর পরে, একটি ওয়েব ব্রাউজার খুলুন এবং আপনার ওয়েব অ্যাপ্লিকেশনটি অ্যাক্সেস করুন, যা ঠিকানাটি ব্যবহার করে "হ্যালো ওয়ার্ল্ড!" স্ট্রিংটি ছাপানো ছাড়া আর কিছুই করে না:

http://localhost:3333

উপরের আমাদের কোডে, যে প্রধান ইভেন্টটি প্রক্রিয়া করা হচ্ছে তা হ'ল HTTP মডিউলটির মাধ্যমে একটি HTTP অনুরোধ।

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

আপনার অ্যাপ্লিকেশনটিতে মডিউলগুলি কল করতে, প্রয়োজনীয় ফাংশনটি প্রদর্শিত হিসাবে ব্যবহার করুন।

var http = require('http');

একবার http মডিউলটি অন্তর্ভুক্ত হয়ে গেলে এটি একটি সার্ভার তৈরি করবে যা নির্দিষ্ট পোর্টে শুনবে (এই উদাহরণে 3333)। Http.creatServer পদ্ধতিটি আসল http সার্ভার তৈরি করে যা একটি ফাংশন (যা যখন ক্লায়েন্ট অ্যাপ্লিকেশনটি অ্যাক্সেস করার চেষ্টা করে) তখন আর্গুমেন্ট হিসাবে গ্রহণ করে।

http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!');
}).listen(8080);

Http.createServer এ ফাংশনটিতে দুটি আর্গুমেন্ট রয়েছে: রিক (অনুরোধ) এবং রেজ (প্রতিক্রিয়া)। রেক আর্গুমেন্টটি কোনও ব্যবহারকারী বা ক্লায়েন্টের অনুরোধ এবং রেজ আর্গুমেন্ট ক্লায়েন্টকে একটি উত্তর প্রেরণ করে।

res.writeHead(200, { 'Content-Type': 'text/plain' });		#This is a response HTTP header
res.end('Hello World!');

কোডের চূড়ান্ত অংশটি সার্ভার চালু হয়ে গেলে কনসোলে আউটপুট প্রেরণ করে।

console.log('Server started on localhost:8080; press Ctrl-C to terminate...!');

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

এখানে, রাউটিং হ'ল একটি ক্লায়েন্টের অনুরোধ পরিচালনা করার কৌশল; ক্লায়েন্টের অনুরোধ করা সামগ্রীর পরিবেশন, ইউআরএল-তে বর্ণিত হিসাবে। একটি URL একটি পথ এবং ক্যোয়ারী স্ট্রিং দিয়ে তৈরি।

কোনও ক্লায়েন্টের অনুরোধ ক্যোয়ারী স্ট্রিংটি দেখতে, আমরা আমাদের প্রতিক্রিয়াতে নীচের লাইনগুলি যুক্ত করতে পারি।

res.write(req.url);
res.end()

নীচে নতুন কোড দেওয়া আছে।

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.write(req.url);
      res.end();		
      }).listen(8080);
console.log('Server started on localhost:8080; press Ctrl-C to terminate...!');

ফাইলটি সংরক্ষণ করুন এবং নীচের কমান্ডটি ব্যবহার করে আপনার অ্যাপ্লিকেশনটি আবার শুরু করুন।

$ node server.js
OR
$ npm start

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

http://localhost:3333
http://localhost:3333/about
http://localhost:3333/tecmint/authors

এখন, আমরা হোমপৃষ্ঠা, লেখক এবং পৃষ্ঠাগুলি সহ টেকমিন্টের জন্য একটি সত্যই ছোট একটি ওয়েবসাইট তৈরি করব। আমরা এই পৃষ্ঠাগুলিতে কিছু তথ্য প্রদর্শন করব।

সম্পাদনার জন্য server.js ফাইলটি খুলুন এবং এতে নীচের কোডটি যুক্ত করুন।

//include http module 
var http = require('http');

http.createServer(function(req,res){
	//store URL in variable q_string

	var q_string = req.url;
	switch(q_string) {
		case '/':
                        	res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('Welcome To linux-console.net!')
                        	res.end();
                        	break;
                	case '/about':
                		res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('About Us');
                        	res.write('\n\n');
                        	res.write('linux-console.net - Best Linux HowTos on the Web.');
                        	res.write('\n');
                        	res.end('Find out more: https://linux-console.net/who-we-are/');
                        	break;
                	case '/tecmint/authors':
                        	res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('Tecmint Authors');
                        	res.write('\n\n');
                        	res.end('Find all our authors here: https://linux-console.net/who-we-are/');
                        	break;
                	default:
                       		res.writeHead(404, { 'Content-Type': 'text/plain' });
                       		res.end('Not Found');
                        	break;
	}
}).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate....');

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

ফাইলটি সংরক্ষণ করুন, সার্ভারটি শুরু করুন এবং বিভিন্ন পৃষ্ঠাতে অ্যাক্সেস করার চেষ্টা করুন।

আপাতত এই পর্যন্ত! আপনি এনপিএম ওয়েবসাইটে আরও তথ্য পেতে পারেন।

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

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