CRUD হল Create, Read, Update, এবং Delete এর সংক্ষিপ্ত রূপ। এই চারটি অপারেশন ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টে ডাটাবেস বা অন্য কোনো ডাটা স্টোরেজ সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার জন্য ব্যবহৃত হয়। CRUD অপারেশনগুলির মাধ্যমে ডাটা তৈরি করা, পড়া, পরিবর্তন করা এবং মুছে ফেলা সম্ভব হয়। এগুলি সাধারণত ওয়েব অ্যাপ্লিকেশনগুলির সার্ভার সাইড লজিকের অংশ হিসেবে কাজ করে।
Node.js এবং Express ব্যবহার করে একটি RESTful API তৈরি করতে CRUD অপারেশনগুলির বাস্তবায়ন করা হয়। ডাটাবেস হিসেবে MongoDB বা MySQL ব্যবহার করা হয়, তবে এখানে MongoDB এর সাথে CRUD অপারেশন দেখানো হবে।
Create অপারেশন ডাটাবেসে নতুন রেকর্ড বা ডাটা তৈরি করতে ব্যবহৃত হয়।
const express = require('express');
const mongoose = require('mongoose');
const app = express();
app.use(express.json()); // JSON বডি পার্স করার জন্য
// MongoDB মডেল তৈরি করা
const User = mongoose.model('User', new mongoose.Schema({
name: String,
age: Number,
email: String
}));
// POST রিকোয়েস্ট হ্যান্ডলার (Create)
app.post('/users', async (req, res) => {
try {
const { name, age, email } = req.body;
const newUser = new User({ name, age, email });
await newUser.save(); // ডাটাবেসে নতুন রেকর্ড সংরক্ষণ করা
res.status(201).send(newUser); // সফল হলে 201 স্ট্যাটাস কোড এবং ডাটা রিটার্ন
} catch (err) {
res.status(400).send(err); // ত্রুটি হলে 400 স্ট্যাটাস কোড
}
});
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
এখানে, /users
পাথে POST
রিকোয়েস্ট এ নতুন ব্যবহারকারী তৈরি করা হচ্ছে এবং MongoDB ডাটাবেসে সেই তথ্য সংরক্ষণ করা হচ্ছে।
Read অপারেশন ব্যবহার করে ডাটাবেস থেকে ডাটা পড়া বা দেখানো হয়। এটি সাধারণত GET
রিকোয়েস্টে ব্যবহৃত হয়।
// GET রিকোয়েস্ট হ্যান্ডলার (Read)
app.get('/users', async (req, res) => {
try {
const users = await User.find(); // সমস্ত ইউজারের ডাটা পড়া
res.status(200).send(users); // সফল হলে 200 স্ট্যাটাস কোড এবং ডাটা রিটার্ন
} catch (err) {
res.status(400).send(err); // ত্রুটি হলে 400 স্ট্যাটাস কোড
}
});
এখানে, /users
পাথের GET
রিকোয়েস্টে MongoDB থেকে সমস্ত ব্যবহারকারীদের তথ্য ফিরিয়ে দেওয়া হচ্ছে।
// GET রিকোয়েস্ট হ্যান্ডলার (Read single record)
app.get('/users/:id', async (req, res) => {
try {
const user = await User.findById(req.params.id); // ইউজারের আইডি দিয়ে ডাটা পড়া
if (!user) {
return res.status(404).send('User not found');
}
res.status(200).send(user); // সফল হলে 200 স্ট্যাটাস কোড এবং ডাটা রিটার্ন
} catch (err) {
res.status(400).send(err); // ত্রুটি হলে 400 স্ট্যাটাস কোড
}
});
এখানে, GET /users/:id
পাথের মাধ্যমে একক ব্যবহারকারীর তথ্য তার id
দিয়ে MongoDB থেকে পাওয়া হচ্ছে।
Update অপারেশন ব্যবহার করে ডাটাবেসে থাকা একটি রেকর্ড বা ডাটা পরিবর্তন করা হয়।
// PUT রিকোয়েস্ট হ্যান্ডলার (Update)
app.put('/users/:id', async (req, res) => {
try {
const { name, age, email } = req.body;
const updatedUser = await User.findByIdAndUpdate(req.params.id, {
name,
age,
email
}, { new: true }); // নতুন ডাটা ফেরত আসবে
if (!updatedUser) {
return res.status(404).send('User not found');
}
res.status(200).send(updatedUser); // সফল হলে 200 স্ট্যাটাস কোড এবং আপডেটেড ডাটা
} catch (err) {
res.status(400).send(err); // ত্রুটি হলে 400 স্ট্যাটাস কোড
}
});
এখানে, PUT /users/:id
পাথের মাধ্যমে নির্দিষ্ট আইডি অনুযায়ী ব্যবহারকারীর ডাটা আপডেট করা হচ্ছে। findByIdAndUpdate()
মেথড ব্যবহার করে ডাটাবেসে রেকর্ড আপডেট করা হচ্ছে।
// PATCH রিকোয়েস্ট হ্যান্ডলার (Partial Update)
app.patch('/users/: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.status(200).send(updatedUser);
} catch (err) {
res.status(400).send(err);
}
});
এখানে, PATCH /users/:id
পাথের মাধ্যমে কেবল নির্দিষ্ট ক্ষেত্রগুলোর আপডেট করা হচ্ছে।
Delete অপারেশন ডাটাবেস থেকে কোনো রেকর্ড বা ডাটা মুছে ফেলার জন্য ব্যবহৃত হয়।
// DELETE রিকোয়েস্ট হ্যান্ডলার (Delete)
app.delete('/users/:id', async (req, res) => {
try {
const deletedUser = await User.findByIdAndDelete(req.params.id); // আইডি দিয়ে ইউজার মুছে ফেলা
if (!deletedUser) {
return res.status(404).send('User not found');
}
res.status(200).send('User deleted successfully'); // সফল হলে 200 স্ট্যাটাস কোড
} catch (err) {
res.status(400).send(err); // ত্রুটি হলে 400 স্ট্যাটাস কোড
}
});
এখানে, DELETE /users/:id
পাথের মাধ্যমে নির্দিষ্ট আইডি অনুযায়ী ব্যবহারকারী মুছে ফেলা হচ্ছে।
এই CRUD অপারেশনগুলি Node.js এবং Express সহ MongoDB বা অন্যান্য ডাটাবেস সিস্টেমে RESTful API তৈরি করার জন্য গুরুত্বপূর্ণ ভিত্তি।
Read more