KoaJS একটি শক্তিশালী ওয়েব ফ্রেমওয়ার্ক, যা Node.js প্ল্যাটফর্মে অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। MongoDB একটি NoSQL ডেটাবেস, যা ডেটা স্টোরেজের জন্য একটি দ্রুত এবং স্কেলেবল সমাধান প্রদান করে। KoaJS এবং MongoDB একসাথে ব্যবহার করে আপনি ডাইনামিক এবং স্কেলেবল ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন।
MongoDB এবং KoaJS-এর ইন্টিগ্রেশন করার জন্য সাধারণত Mongoose প্যাকেজটি ব্যবহার করা হয়, যা MongoDB এর সাথে সহজে কাজ করতে সহায়তা করে।
১. MongoDB এবং Mongoose ইনস্টলেশন
প্রথমে আপনাকে MongoDB ড্রাইভার এবং Mongoose প্যাকেজটি ইনস্টল করতে হবে। Mongoose MongoDB এর সাথে সহজে কাজ করতে সাহায্য করে এবং ডেটাবেস মডেলিং, স্কিমা সংজ্ঞায়িত, এবং ডেটা ভ্যালিডেশন পরিচালনা করে।
ইনস্টলেশন:
npm install mongoose
MongoDB সার্ভার চালু করা:
MongoDB সার্ভার চালু করতে হলে, আপনার সিস্টেমে MongoDB ইনস্টল করা থাকতে হবে। MongoDB ইনস্টল করার জন্য, MongoDB এর অফিসিয়াল সাইট থেকে ডাউনলোড করে ইনস্টল করুন এবং সার্ভার চালু করুন।
এছাড়া, আপনি MongoDB Atlas ব্যবহার করে ক্লাউডে MongoDB ডেটাবেসও তৈরি করতে পারেন।
২. KoaJS এবং MongoDB এর সাথে সংযোগ স্থাপন
KoaJS অ্যাপ্লিকেশনে MongoDB এবং Mongoose এর সাথে সংযোগ স্থাপন করতে প্রথমে MongoDB সার্ভার বা MongoDB Atlas থেকে একটি URL সংযোগ তৈরি করতে হবে। এরপর আপনি Mongoose ব্যবহার করে MongoDB এর সাথে কনেক্ট করতে পারবেন।
উদাহরণ কোড:
const Koa = require('koa');
const Router = require('koa-router');
const mongoose = require('mongoose');
const app = new Koa();
const router = new Router();
// MongoDB সংযোগ তৈরি করা
mongoose.connect('mongodb://localhost:27017/koa-mongo', {
useNewUrlParser: true,
useUnifiedTopology: true
}).then(() => {
console.log('MongoDB connected successfully');
}).catch((err) => {
console.error('MongoDB connection error:', err);
});
// MongoDB মডেল (Schema) তৈরি করা
const UserSchema = new mongoose.Schema({
name: { type: String, required: true },
age: { type: Number, required: true },
email: { type: String, required: true }
});
const User = mongoose.model('User', UserSchema);
// রাউট তৈরি করা
router.get('/users', async (ctx) => {
const users = await User.find(); // MongoDB থেকে ইউজারদের তথ্য পাওয়া
ctx.body = users;
});
router.post('/users', async (ctx) => {
const { name, age, email } = ctx.request.body; // POST রিকোয়েস্ট থেকে ডেটা নেয়া
const newUser = new User({ name, age, email });
await newUser.save(); // MongoDB-তে নতুন ইউজার সেভ করা
ctx.status = 201;
ctx.body = { message: 'User created successfully', user: newUser };
});
// Middleware: Body parser ব্যবহার করা
app.use(require('koa-bodyparser')());
// রাউট মাউন্ট করা
app
.use(router.routes())
.use(router.allowedMethods());
// অ্যাপ চালু করা
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
কোড ব্যাখ্যা:
- MongoDB সংযোগ:
mongoose.connect()মেথড ব্যবহার করে MongoDB ডেটাবেসে সংযোগ স্থাপন করা হয়েছে। এখানেmongodb://localhost:27017/koa-mongoURL দিয়ে লোকাল MongoDB সার্ভারের সাথে সংযোগ করা হয়েছে।- আপনি যদি MongoDB Atlas ব্যবহার করেন, তবে এখানেই Atlas এর URL ব্যবহার করবেন।
- MongoDB মডেল তৈরি:
- Mongoose এর মাধ্যমে একটি UserSchema তৈরি করা হয়েছে, যা MongoDB এর জন্য একটি স্কিমা এবং মডেল তৈরি করে।
- User মডেলটি MongoDB থেকে ডেটা CRUD (Create, Read, Update, Delete) অপারেশন হ্যান্ডল করতে ব্যবহার করা হবে।
- GET রাউট:
/usersরাউটে GET রিকোয়েস্টের মাধ্যমে MongoDB থেকে সমস্ত ইউজারদের তথ্য নেওয়া হচ্ছে।
- POST রাউট:
/usersরাউটে POST রিকোয়েস্টের মাধ্যমে নতুন ইউজার তৈরি করা হচ্ছে এবং MongoDB-তে সংরক্ষিত হচ্ছে।
- Koa BodyParser:
koa-bodyparserমিডলওয়্যার ব্যবহার করে POST রিকোয়েস্টের body থেকে ডেটা পার্স করা হচ্ছে।
৩. MongoDB এ ডেটা CRUD অপারেশন
৩.১. Create (ডেটা তৈরি করা)
নতুন ডেটা তৈরি করতে new Model() এর মাধ্যমে ডেটা ইনস্ট্যান্স তৈরি করুন এবং save() মেথড দিয়ে MongoDB-তে সেভ করুন।
const newUser = new User({ name: 'John Doe', age: 30, email: 'john@example.com' });
await newUser.save();
৩.২. Read (ডেটা পড়া)
MongoDB থেকে ডেটা পড়তে find(), findOne() বা findById() মেথড ব্যবহার করা হয়।
const users = await User.find(); // সমস্ত ইউজার ডেটা নেয়া
const user = await User.findById(userId); // নির্দিষ্ট ID দিয়ে ইউজার খোঁজা
৩.৩. Update (ডেটা আপডেট করা)
MongoDB-তে ডেটা আপডেট করতে updateOne() বা findByIdAndUpdate() মেথড ব্যবহার করা হয়।
await User.findByIdAndUpdate(userId, { name: 'Jane Doe', age: 32 });
৩.৪. Delete (ডেটা মুছে ফেলা)
MongoDB থেকে ডেটা মুছে ফেলতে deleteOne() বা findByIdAndDelete() মেথড ব্যবহার করা হয়।
await User.findByIdAndDelete(userId);
৪. MongoDB সংযোগ ত্রুটি হ্যান্ডলিং
MongoDB সংযোগে ত্রুটি ঘটলে তা হ্যান্ডল করার জন্য .catch() ব্যবহার করা যেতে পারে। এটি অ্যাপ্লিকেশনের স্টার্টআপে MongoDB সংযোগের ত্রুটি সঠিকভাবে হ্যান্ডল করবে।
mongoose.connect('mongodb://localhost:27017/koa-mongo', {
useNewUrlParser: true,
useUnifiedTopology: true
})
.then(() => {
console.log('MongoDB connected successfully');
})
.catch((err) => {
console.error('MongoDB connection error:', err);
process.exit(1); // অ্যাপ বন্ধ করা যদি সংযোগ না হয়
});
সারাংশ
KoaJS এবং MongoDB ইন্টিগ্রেশন খুবই সহজ এবং কার্যকরী। Mongoose এর মাধ্যমে আপনি MongoDB এর সাথে সহজে কাজ করতে পারেন। এই টিউটোরিয়ালে KoaJS-এ MongoDB সংযোগ স্থাপন, ডেটা CRUD অপারেশন (Create, Read, Update, Delete) পরিচালনা, এবং MongoDB ত্রুটি হ্যান্ডলিং দেখানো হয়েছে। KoaJS এবং MongoDB একত্রে ব্যবহার করলে আপনি একটি দ্রুত এবং স্কেলযোগ্য ওয়েব অ্যাপ্লিকেশন তৈরি করতে সক্ষম হবেন।
Read more