Hello Viewers! বাংলায় বৃহৎ লার্নিং হাবে আপনাকে স্বাগতম। আজকের এই ব্লগে আমরা যারা React নিয়ে কাজ করছি, আমাদের প্রেজেক্টের প্রয়োজন অনুযায়ী লোকাল মেশিনের পাশাপাশি সার্ভারের প্রয়োজন হয়। আর সার্ভারের জন্য সবচেয়ে জনপ্রিয় Node.js রান টাইম ব্যবহার করে থাকি। আর এই কাজ টা আরও সহজ করে দিয়েছে নোড জেএস এর জনপ্রিয় ফ্রেমওয়ার্ক Express JS. আর আমাদের ডাটা স্টোরেজ করার জন্য আমরা MongoDB ব্যবহার করে থাকি। আজকের এই পোষ্টে আমরা কিভাবে আমাদের লোকাল মেশিনে, আমাদের প্রোজেক্ট এর জন্য একটা NodeJs সার্ভার সহজে তৈরি করতে পারি তা ধাপে ধাপে বিস্তারিত আলোচনা করবো। তাহলে
শুরু করা যাক।
সার্ভার তৈরির প্রাথমিক ধাপঃ
প্রাথমিক ধাপে NodeJS এর সার্ভার তৈরি করতে আমাদের যেসব প্যাকেজ ইন্সটল করতে হয় তা হলোঃ mongodb, express, cors, dotenv, nodemon
নোটঃ তবে এখানে যে প্যাকেজ গুলো সার্ভার নিয়ে কাজ করতে গেলে অবশ্যই প্রয়োজনিয়, তা নিয়ে আলোচনা করেছি নিন্মলোখিত প্যাকেজ ছাড়াও আরো প্যকেজ রয়েছে যা আপনার কাজ অনুসারে ব্যবহার করতে পারবেন।
ইন্সটল করার নিয়মঃ
কমান্ড লাইনে গিয়ে ( ভালো আউটপুটের জন্য Git Bash ব্যবহার করুন ) : npm install অথবা npm i স্পেস mongodb স্পেস express স্পেস cors স্পেস dotenv স্পেস nodemon ) তারপর হিট এন্টার কি।
তার নমুনাঃ npm i mongodb express cors dotenv nodemon Or npm install mongodb express cors dotenv nodemon প্যাকেজ তো সেটাপ হলো তারপর…
দ্বিতীয় ধাপঃ (এই ধাপেয় আমরা বেশি ভুল করে থাকি, ভুল থেকে বাঁচতে হলো এখান থেকে সতর্ক থাকতে হবে) এই ধাপের কমন কাজ গুলো হলোঃ
[const express = require("express");
const cors =require("cors");
require("dotenv").config();
const app = express();
const port = process.env.PORT || 5000;
/ Middle Ware
app.use(cors());
app.use(express.json());]
এখানে MongoDB সেটাপ করতে হয়, তা আমি সামনে আলোচনা করছি
[app.get("/", (req, res) => {res.send("Hello, Welcome Notesaid24 World!");});
app.listen(port);]
সার্ভার এবং ফাইলের ইনিশিয়াল সেটাপ করলাম, তারপর……
তৃতীয় ধাপঃ MongoDB কানেক্ট করা (Be Alert!)
MongoDB তে একাউন্ট খোলা এবং নতুন ক্লাস্টার তৈরি করা নিয়ে এখানে আলোচনা করলাম না। এখানে আলোচনা করবো মংগো কানেক্ট নিয়েঃ
[const { MongoClient, ServerApiVersion} = require("mongodb");
const uri =
`mongodb+srv://${process.env.USER_NAME}:${process.env.USER_PASSWORD}@cluster0.sxvrkdg.mongodb.net/?retryWrites=true&w=majority`;]
নোটঃ এখানে টেমপ্লেট স্ট্রিং (ব্যাকটিক) ব্যবহার করা হয়েছে ডাইনামিক ভ্যালু পাস করার
জন্যে (ব্যাকটিক এর অবস্থান আপনার কিবোর্ডের Tab এর ঠিক উপরের বাটন টা)
[const client = new MongoClient(uri, {
useNewUrlParser: true,
useUnifiedTopology: true,
serverApi: ServerApiVersion.v1,
});
async function notesAid24(){
নোটঃ ফাংশনের নাম যা ইচ্ছে দিতে পারে তবে মিনিংফুল হওয়া অবশ্যই ভালো।
try{
await client.connect()
}
finally{
}
}notesAid24().catch(console.dir());]
তবে মনে রাখা প্রয়োজনঃ রুট ফোল্ডারে .env নামে একটা ফাইল তৈরি করবেন। আর তার মধ্যে আপনাদের সার্ভারের বা ক্লাস্টার এক্সেস ইউজার নেম এবং ইউজার পাসওয়ার্ড রাখবেন।
[তার নমুনাঃ
USER_NAME=notesaid24
USER_PASSWORD=like&share&comment
]
তবে আমরা এখানে কমন একটা ভুল করি তা হলো, গিট ইগ্নোর ফাইল ক্রিয়েট করি না তার জন্য চৌদ্ধগোষ্টি নিয়ে সকল ফাইল গিটহাবে চলে যায়, তা হতে দেওয়া যাবে না। তার জন্য অবশ্যই মনে করে রুট ফোল্ডারে .gitignore ফাইল তৈরি করে নিবেন। আর তার মধ্যে নোড মডিউলস এবং ডট এনভি ফাইল রাখবেন।
তার নমুনাঃ
/node_modules
.env
ব্যাশ, আমাদের সার্ভার তৈরির কাজ শেষ। কিন্তু সমস্যা তো রয়ে গেলো। কেননা আমাদের সার্ভার লোকাল মেশিনে আছে আর তা শুধু একমাত্র আমি এক্সেস করতে পারবো, এটা তো সঠিক সমাধান না যে আমার প্রোজেক্ট শুধু আমি ব্যবহার করবো, তা ঠিক। কিন্তু তার এক্সেস যদি কারো কাছে দিতে হয় তাহলে অবশ্যই এর জন্য কোন থার্ড পার্টি সার্ভারে আমাদের সার্ভার হোস্ট করতে হবে, যেন সবাই ব্যবহার করতে পারে। আর তার সমাধান দিচ্ছে সবচেয়ে জনপ্রিয় এবং ব্যবাহারে সহজ তা হলো Heroku। আর হেরোকু সেটাপ নিয়ে বিস্তারিত আলোচনা করবো। আজ আর নয় সবাই ভালো থাকবেন। আর বুঝতে সমস্যা হলে অবশ্যই কমেন্টে জানিয়ে দিবেন, আর আমি অতিদ্রুত সমাধান দেওয়ার চেষ্টা করবো।