ExpressJS ব্যবহার করে ডেটাবেসের সাথে CRUD (Create, Read, Update, Delete) অপারেশনগুলো কার্যকরীভাবে পরিচালনা করা যায়। এক্সপ্রেস অ্যাপ্লিকেশনের মাধ্যমে আপনি RESTful API তৈরি করতে পারেন, যা ক্লায়েন্টের থেকে ডেটা গ্রহণ এবং ডেটাবেসে ম্যানিপুলেট করতে সক্ষম। এখানে, আমরা MongoDB ব্যবহার করে CRUD অপারেশনগুলো দেখব, তবে আপনি অন্য কোনো ডেটাবেস (যেমন MySQL, PostgreSQL) ব্যবহার করলেও একই ধরণের কাঠামো ব্যবহার করা যাবে।
১. ডেটাবেস কনফিগারেশন (MongoDB)
MongoDB ব্যবহার করতে হলে প্রথমে আপনার প্রোজেক্টে MongoDB এর জন্য একটি প্যাকেজ (যেমন mongoose) ইনস্টল করতে হবে।
১.১. Mongoose ইনস্টলেশন
npm install mongoose
এবং তারপর MongoDB সংযোগ তৈরি করতে হবে।
const mongoose = require('mongoose');
// MongoDB সার্ভারের URL
const dbURI = 'mongodb://localhost:27017/mydatabase';
mongoose.connect(dbURI, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('MongoDB Connected'))
.catch((err) => console.log('Database connection error:', err));
২. Create: নতুন ডেটা তৈরি করা (POST)
ডেটাবেসে নতুন ডেটা তৈরি করার জন্য POST HTTP মেথড ব্যবহার করা হয়। এটি ক্লায়েন্ট থেকে ডেটা গ্রহণ করে এবং ডেটাবেসে একটি নতুন রেকর্ড তৈরি করে।
২.১. Mongoose মডেল তৈরি করা
প্রথমে, MongoDB তে যে ধরনের ডেটা রাখতে চান তা অনুযায়ী একটি Mongoose model তৈরি করতে হবে।
const mongoose = require('mongoose');
// Schema সংজ্ঞায়িত করা
const userSchema = new mongoose.Schema({
name: { type: String, required: true },
email: { type: String, required: true },
age: { type: Number, required: true }
});
// Model তৈরি করা
const User = mongoose.model('User', userSchema);
২.২. Create অপারেশন (POST) এর জন্য রাউট
app.post('/user', async (req, res) => {
try {
const { name, email, age } = req.body;
const newUser = new User({
name,
email,
age
});
await newUser.save(); // MongoDB তে ডেটা সেভ করা
res.status(201).send('User Created');
} catch (error) {
res.status(400).send('Error creating user');
}
});
এখন, আপনি POST রিকোয়েস্ট পাঠাতে পারেন /user URL-এ, এবং একটি নতুন ইউজার ডেটাবেসে যুক্ত হবে।
৩. Read: ডেটা পড়া (GET)
ডেটাবেস থেকে ডেটা পড়ার জন্য GET HTTP মেথড ব্যবহার করা হয়। এতে আপনি ডেটাবেস থেকে নির্দিষ্ট রেকর্ড অথবা সমস্ত রেকর্ড রিট্রিভ করতে পারেন।
৩.১. Read অপারেশন (GET) এর জন্য রাউট
// সব ইউজার দেখা
app.get('/users', async (req, res) => {
try {
const users = await User.find(); // সমস্ত ইউজার ফেচ করা
res.json(users); // JSON আকারে রিটার্ন করা
} catch (error) {
res.status(500).send('Error fetching users');
}
});
// নির্দিষ্ট একটি ইউজার দেখা
app.get('/user/:id', async (req, res) => {
try {
const user = await User.findById(req.params.id); // ইউজার আইডি দিয়ে খোঁজা
if (!user) {
return res.status(404).send('User not found');
}
res.json(user);
} catch (error) {
res.status(500).send('Error fetching user');
}
});
এখন, GET রিকোয়েস্ট পাঠিয়ে আপনি ডেটাবেস থেকে ইউজারের তথ্য পেতে পারবেন।
৪. Update: ডেটা আপডেট করা (PUT/PATCH)
ডেটাবেসে পূর্বের রেকর্ড আপডেট করতে PUT বা PATCH HTTP মেথড ব্যবহার করা হয়। PUT সাধারণত সম্পূর্ণ রেকর্ড আপডেট করতে ব্যবহার হয়, এবং PATCH শুধুমাত্র অংশবিশেষ আপডেট করতে ব্যবহৃত হয়।
৪.১. Update অপারেশন (PUT) এর জন্য রাউট
app.put('/user/:id', async (req, res) => {
try {
const { name, email, age } = req.body;
const updatedUser = await User.findByIdAndUpdate(
req.params.id, // ইউজার আইডি
{ name, email, age },
{ new: true } // নতুন ডেটা রিটার্ন করবে
);
if (!updatedUser) {
return res.status(404).send('User not found');
}
res.json(updatedUser); // আপডেট হওয়া ইউজার রিটার্ন করা
} catch (error) {
res.status(400).send('Error updating user');
}
});
এখন, আপনি PUT রিকোয়েস্ট পাঠিয়ে /user/:id এ ইউজারের তথ্য আপডেট করতে পারবেন।
৪.২. Update অপারেশন (PATCH) এর জন্য রাউট
app.patch('/user/:id', async (req, res) => {
try {
const updatedUser = await User.findByIdAndUpdate(
req.params.id,
req.body, // শুধুমাত্র প্রেরিত ডেটা আপডেট হবে
{ new: true }
);
if (!updatedUser) {
return res.status(404).send('User not found');
}
res.json(updatedUser);
} catch (error) {
res.status(400).send('Error updating user');
}
});
এখানে, PATCH রিকোয়েস্ট ব্যবহার করলে শুধুমাত্র প্রয়োজনীয় ডেটা আপডেট হবে।
৫. Delete: ডেটা মুছে ফেলা (DELETE)
ডেটাবেস থেকে ডেটা মুছে ফেলার জন্য DELETE HTTP মেথড ব্যবহার করা হয়। এটি নির্দিষ্ট একটি রেকর্ড ডিলিট করে।
৫.১. Delete অপারেশন (DELETE) এর জন্য রাউট
app.delete('/user/:id', async (req, res) => {
try {
const deletedUser = await User.findByIdAndDelete(req.params.id); // ইউজার ডিলিট করা
if (!deletedUser) {
return res.status(404).send('User not found');
}
res.send('User Deleted');
} catch (error) {
res.status(500).send('Error deleting user');
}
});
এখন, DELETE রিকোয়েস্ট পাঠিয়ে আপনি /user/:id URL-এ গিয়ে ইউজারের ডেটা মুছে ফেলতে পারবেন।
সারাংশ
ExpressJS এর মাধ্যমে MongoDB বা অন্যান্য ডেটাবেসে CRUD (Create, Read, Update, Delete) অপারেশনগুলো খুব সহজে সম্পাদন করা যায়। MongoDB-এর জন্য Mongoose ব্যবহার করে ডেটাবেসের সাথে সহজে সংযোগ স্থাপন এবং ডেটা পরিচালনা করা সম্ভব। উপরের উদাহরণগুলোর মাধ্যমে আপনি বুঝতে পারছেন কিভাবে POST, GET, PUT, PATCH, এবং DELETE HTTP মেথড ব্যবহার করে ডেটাবেসে ডেটা তৈরি, পড়া, আপডেট এবং মুছে ফেলা সম্ভব। CRUD অপারেশনগুলো আপনাকে একটি শক্তিশালী এবং কার্যকর API তৈরি করতে সহায়তা করবে।
Read more