KoaJS একটি লঘু এবং শক্তিশালী ওয়েব ফ্রেমওয়ার্ক যা Node.js-এ তৈরি, এবং এটি ডেটাবেস ম্যানেজমেন্টের জন্য ORM (Object Relational Mapping) সরবরাহ করে না। তবে, আপনি KoaJS-এ Sequelize (SQL ডেটাবেসের জন্য) বা Mongoose (MongoDB-এর জন্য) এর মতো ORM লাইব্রেরি ব্যবহার করতে পারেন। এই ORM লাইব্রেরি গুলি ডেটাবেসের সাথে যোগাযোগ সহজ করে তোলে, ডেটাবেস মডেল তৈরি করতে সাহায্য করে এবং CRUD (Create, Read, Update, Delete) অপারেশন সম্পাদন করতে সক্ষম করে।
এখানে, আমরা দেখব কিভাবে KoaJS-এ Sequelize এবং Mongoose ব্যবহার করে ডেটাবেস ম্যানেজমেন্ট করা যায়।
১. Sequelize এর মাধ্যমে SQL ডেটাবেস ম্যানেজমেন্ট
Sequelize হলো একটি অত্যন্ত জনপ্রিয় ORM লাইব্রেরি যা SQL ডেটাবেস যেমন MySQL, PostgreSQL, MariaDB, SQLite ইত্যাদির সাথে কাজ করতে পারে। Sequelize ডেটাবেসের সাথে অবজেক্ট ভিত্তিক ইন্টারফেস তৈরি করে, যাতে আপনি ডেটাবেসে SQL কোয়েরি লেখার পরিবর্তে জাভাস্ক্রিপ্ট কোডে ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে পারেন।
১.১. Sequelize ইনস্টল করা
প্রথমে, Sequelize এবং SQL ড্রাইভার ইনস্টল করতে হবে (এখানে আমরা PostgreSQL উদাহরণ হিসেবে নেব):
npm install sequelize pg pg-hstore
১.২. Sequelize কনফিগারেশন এবং মডেল তৈরি করা
এখন, Sequelize কনফিগার করুন এবং ডেটাবেস মডেল তৈরি করুন:
const Koa = require('koa');
const Router = require('koa-router');
const { Sequelize, DataTypes } = require('sequelize');
const app = new Koa();
const router = new Router();
// Sequelize কনফিগারেশন
const sequelize = new Sequelize('postgres://user:password@localhost:5432/mydb');
// ডেটাবেস মডেল তৈরি করা
const User = sequelize.define('User', {
name: {
type: DataTypes.STRING,
allowNull: false
},
email: {
type: DataTypes.STRING,
unique: true,
allowNull: false
}
});
// Sequelize দিয়ে ডেটাবেস সিঙ্ক্রোনাইজ করা
sequelize.sync().then(() => {
console.log('Database synced!');
});
// রাউট হ্যান্ডলিং
router.get('/users', async (ctx) => {
const users = await User.findAll(); // সমস্ত ইউজার ডেটা আনার জন্য
ctx.body = users;
});
router.post('/users', async (ctx) => {
const { name, email } = ctx.request.body;
const user = await User.create({ name, email }); // নতুন ইউজার তৈরি
ctx.body = user;
});
app.use(router.routes()).use(router.allowedMethods());
// অ্যাপ চালু করা
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
এখানে, আমরা:
- Sequelize দিয়ে PostgreSQL ডেটাবেসের সাথে সংযোগ তৈরি করেছি।
Userমডেল তৈরি করেছি, যেখানেnameএবংemailফিল্ড রয়েছে।GET /usersরাউটে সব ইউজারকে ডেটাবেস থেকে ফেচ করেছি।POST /usersরাউটে নতুন ইউজার ডেটাবেসে যুক্ত করেছি।
২. Mongoose এর মাধ্যমে MongoDB ম্যানেজমেন্ট
Mongoose হলো MongoDB-এর জন্য একটি জনপ্রিয় ORM লাইব্রেরি, যা MongoDB ডেটাবেসের সাথে সহজভাবে কাজ করার জন্য ব্যবহৃত হয়। Mongoose আপনাকে MongoDB ডেটাবেসের সাথে অবজেক্ট ভিত্তিক ইন্টারফেস ব্যবহার করতে সাহায্য করে, যেখানে আপনি মডেল তৈরি এবং CRUD অপারেশন সম্পাদন করতে পারবেন।
২.১. Mongoose ইনস্টল করা
প্রথমে Mongoose ইনস্টল করতে হবে:
npm install mongoose
২.২. Mongoose কনফিগারেশন এবং মডেল তৈরি করা
এখন, 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/mydb', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('MongoDB connected!'))
.catch(err => console.log(err));
// MongoDB মডেল তৈরি
const UserSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true,
unique: true
}
});
const User = mongoose.model('User', UserSchema);
// রাউট হ্যান্ডলিং
router.get('/users', async (ctx) => {
const users = await User.find(); // সমস্ত ইউজার ডেটা আনার জন্য
ctx.body = users;
});
router.post('/users', async (ctx) => {
const { name, email } = ctx.request.body;
const user = new User({ name, email });
await user.save(); // নতুন ইউজার সেভ করা
ctx.body = user;
});
app.use(router.routes()).use(router.allowedMethods());
// অ্যাপ চালু করা
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
এখানে:
- MongoDB-তে সংযোগ স্থাপন করা হয়েছে
mongoose.connect()দিয়ে। UserSchemaনামে একটি মডেল তৈরি করা হয়েছে, যেখানেnameএবংemailফিল্ড রয়েছে।GET /usersরাউটে MongoDB থেকে সব ইউজারকে ফেচ করেছি।POST /usersরাউটে নতুন ইউজার MongoDB-তে সেভ করেছি।
সারাংশ
KoaJS-এ Sequelize এবং Mongoose ব্যবহার করে আপনি SQL এবং NoSQL ডেটাবেসের সাথে কাজ করতে পারেন। Sequelize SQL ডেটাবেস (যেমন PostgreSQL, MySQL) এর জন্য একটি শক্তিশালী ORM, এবং Mongoose MongoDB-এর জন্য একটি সহজ এবং জনপ্রিয় ORM। এই ORM লাইব্রেরিগুলি ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে সহজ এবং কার্যকরী পদ্ধতি প্রদান করে, যা ডেটা মডেল তৈরি এবং CRUD অপারেশন সম্পাদন করতে সহায়ক। KoaJS এর মাধ্যমে এই ORM লাইব্রেরিগুলির ব্যবহার অত্যন্ত সরল এবং শক্তিশালী ডেটাবেস ম্যানেজমেন্ট সিস্টেম তৈরি করতে সাহায্য করে।
Read more