Node.js সিম্পল ওয়েভ সার্ভার

মাত্র ৫ মিনিটে Node.js এবং Bootstrap ব্যবহার করে তৈরি করে ফেলুন একটি সিম্পল সার্ভার।

--

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

ইন্সটল হয়ে গেলে Windows OS ব্যবহারকারীরা নিচের লিঙ্ক থেকে যেয়ে Git — Bash ডাউনলোড করে নিবো —

MacOS এবং Linux ব্যবহারকারীরা নিজেদের টার্মিনাল ব্যবহার করাটাই ভালো। অথবা চাইলে Git — Bash ও ইন্সটল করে ব্যবহার করতে পারেন।

Git — Bash ইন্সটল হয়ে গেলে সেটা ওপেন করলে ঠিক এরকম একটা টার্মিনাল উইন্ডো দেখাবে —

টার্মিনালে নিচের ২ টা কমান্ড টাইপ করে এন্টার হিট করুন —

এবং

এই দুইটা কমান্ড আপনাকে যথাক্রমে কম্পিউটারে ইন্সটল করা Node.js এবং npm এর ভার্শন দেখাবে।

এবার আপনার কম্পিউটারের যেকোনো ডিরেক্টরিতে simple-Server নামক একটি ফোল্ডার তৈরি করুন। তৈরি হয় গেলে ফোল্ডারটি সিলেক্ট করে মাউসের রাইট বাটন ক্লিক করে সেখান থেকে Git Bash Here সিলেক্ট করুন।

নিচের ছবিটার মতো একটি টার্মিনাল ওপেন হবে —

নোড জেএস এর প্রজেক্ট তৈরি করার জন্য আমাদের এখন একটি package.json ফাইল লাগবে, এটা বানানোর জন্য টার্মিনালে টাইপ করুন —

এন্টার হিট করার পর আমাদের package.json ফাইলটি তৈরি হয়ে যাবে, তৈরি হবার সময় আপনাকে কিছু প্রশ্ন করবে, চাইলে আপনি প্রশ্ন গুলোর উত্তর দিতে পারেন অথবা এন্টার চেপে চেপে স্কিপ করে যেতে পারেন।

এখন প্রজেক্ট ফোল্ডারে server.js নামক একটি জাভাস্ক্রিপ্ট ফাইল তৈরি করুন। তারপর এটিকে যেকোনো কোড এডিটর দিয়ে ওপেন করুন। এই ফাইলটিই আমাদের আসল এবং একমাত্র সার্ভার হিসেবে কাজ করবে। তো সার্ভার হিসেবে কাজ করানো জন্য প্রথমে কিছু Node Module কল করতে হবে। সেগুলো হচ্ছে http, url, path এবং fs.

Node.js এ আমরা require(‘ ’) দিয়ে Node Module কল করি।

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

এবার আমরা createServer ফাংশন ম্যাথোড ব্যবহার করে একটি সার্ভার তৈরি করবো যেটা Request এবং Response রিসিব করবে।

createServer ফাংশনের ভিতরে আমরা এখন parse মড্যুল ব্যবহার করে path name সহ url request করবো এবং সেটাকে স্টোর করবো uri নামক ভ্যারিয়েবলে। এরপর process.cwd() ফাংশন ব্যবহার করে fileName নামক আরেকটি ভ্যারিয়েবল তৈরি করবো যেখানে আমরা uri ভ্যারিয়েবলকে unescape এর ভিতর দিয়ে কল করবো। তারপর uri কে কনসোল লগে দেখাবো এবং stats নামক আরেকটি ভ্যারিয়েবল তৈরি করবো।

এখন আমাদের সার্ভারে অনেক অপ্রত্যাশিত রিকুয়েস্ট আসতে পারে। যেমন কেও page.html খুজলো কিন্তু সার্ভারে সেটা নেই, তখন এই রিকুয়েস্টটা সার্ভার কীভাবে হ্যান্ডেল করবে? এটার জন্য আমরা Try and Catch ম্যাথোড ব্যবহার করবো, যেটা চেক করবে ফাইলটি আমাদের সার্ভারে আছে কিনা, থাকলে সে রিকুয়েস্ট এক্সেপ্ট করবে আর না থাকলে 404 Not Found এরর দেখাবে।

তারপর আমরা if — else if — else ম্যাথোড ব্যবহার করে যথাক্রমে চেক করবো সার্ভারের রিক্যুয়েস্টটা file এর নাকি directory এর। file এর হলে সার্ভারটি mimeTypes অ্যারেকে কল করবে। directory এর হলে index.html কে কল করবে এবং কোনোটাই না হলে 500 Internal Error দেখাবে।

আমাদের সার্ভার তৈরি করা শেষ কিন্তু এখন এটাকে আমাদের লোকালহোস্টে হোস্ট করতে হবে। তার জন্য createServer ফাংশনের শেষে আমরা নিচের কোডটি লিখবো —

.listen(3000);

সবগুলো কোড একসাথে করলে নিচের ফাইলটার মতোন হবে —

এবার Git Bash টার্মিনালে যেয়ে নিচের কমান্ডটি লিখে ফেলুন —

অথবা

ফলাফলে টার্মিনাল আপনাকে দেখাবে যে সার্ভারটি শুরু হয়েছে। আপনার ব্রাউসার থেকে localhost:3000 লোকেশনে গেলে দেখবেন যে মাত্র বানানো সার্ভারটি রান হচ্ছে।

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

অথবা চাইলে নিচের html কোডটি কপি পেস্ট করে নিতে পারেন —

এখন নিচের লিঙ্ক থেকে বুটস্ট্র্যাপ এর Compiled CSS and JS প্যাকেজটি ডাউনলোড করে নিতে হবে —

ডাউনলোড হয়ে গেলে Winrar দিয়ে ফাইলটিকে unzip করে css ফোল্ডার থেকে bootstrap.css ফাইলটিকে কপি করে আপনার প্রজেক্ট ফোল্ডারে css নামক আরেকটি ফোল্ডার তৈরি করে সেটাতে পেস্ট করে দিন।

এবার Git Bash টার্মিনালে যেয়ে CTRL + C চেপে বর্তমানে চলমান আমাদের নোড সার্ভারটাকে বন্ধ করতে হবে। তারপর আবার

অথবা

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

এই লিখাটি পূর্বে আমার ব্যাক্তিগত ব্লগে পাব্লিশ হয়েছে। পড়তে পারবেন এখান থেকে —

আমার ব্যাক্তিগত ব্লগ —

বাংলা ভার্শন — https://with.dibakar.me/

ইংলিশ ভার্শন — https://with.dibakar.me/en/

আমাকে পাবেন —

ফেসবুকে — https://www.facebook.com/dipu.dibakar

টুইটারে — https://twitter.com/iamdibakardipu

ইনস্টাগ্রামে — https://www.instagram.com/dibakardipu/

গিটহাবে — https://github.com/dibakarsutradhar

লিঙ্কডইনে — https://linkedin.com/in/dibakardipu/

--

--

Dibakar Sutra Dhar
প্রোগ্রামিং পাতা

A noob software engineer who tries to explain stuffs from abstracted memory