KoaJS Node.js এর একটি শক্তিশালী ফ্রেমওয়ার্ক, যা ডেটাবেসের সাথে যোগাযোগ করতে পারে। PostgreSQL বা MySQL এর মতো সম্পর্কিত ডেটাবেস ব্যবহারের জন্য, KoaJS সাধারণত pg (PostgreSQL) বা mysql2 (MySQL) প্যাকেজ ব্যবহার করে ডেটাবেসের সাথে কানেকশন স্থাপন এবং ডেটা পরিচালনা করে।
এখানে, আমরা কিভাবে KoaJS-এ PostgreSQL এবং MySQL ব্যবহার করতে পারি তা দেখব।
১. PostgreSQL এর সাথে KoaJS ব্যবহার করা
PostgreSQL এর সাথে KoaJS ব্যবহার করতে, আপনাকে প্রথমে pg প্যাকেজটি ইনস্টল করতে হবে। এই প্যাকেজটি PostgreSQL ডেটাবেসের সাথে কানেকশন করতে এবং SQL কুয়েরি চালাতে সাহায্য করবে।
ইনস্টলেশন:
npm install pg
PostgreSQL ব্যবহার করে KoaJS এর সাথে কানেকশন তৈরি করা
const Koa = require('koa');
const { Pool } = require('pg'); // PostgreSQL প্যাকেজ
const app = new Koa();
// PostgreSQL ডাটাবেসের সাথে কানেকশন স্থাপন
const pool = new Pool({
user: 'your_user',
host: 'localhost',
database: 'your_database',
password: 'your_password',
port: 5432,
});
app.use(async (ctx) => {
const res = await pool.query('SELECT * FROM users'); // users টেবিল থেকে তথ্য আনা
ctx.body = res.rows; // ডেটা রেসপন্স হিসেবে পাঠানো
});
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
এখানে, pg প্যাকেজের Pool ব্যবহার করা হয়েছে যা ডেটাবেসের সাথে একাধিক কানেকশন ম্যানেজ করার জন্য কার্যকর। pool.query() এর মাধ্যমে আপনি SQL কুয়েরি চালাতে পারেন।
- user: PostgreSQL ব্যবহারকারীর নাম
- host: ডাটাবেস সার্ভারের হোস্ট (এখানে
localhost) - database: ডাটাবেসের নাম
- password: PostgreSQL ব্যবহারকারীর পাসওয়ার্ড
- port: PostgreSQL ডিফল্ট পোর্ট 5432
২. MySQL এর সাথে KoaJS ব্যবহার করা
MySQL ডেটাবেসের সাথে KoaJS ব্যবহার করতে mysql2 প্যাকেজটি ইনস্টল করতে হবে। এই প্যাকেজটি MySQL ডেটাবেসের সাথে কানেকশন এবং SQL কুয়েরি পরিচালনা করতে ব্যবহৃত হয়।
ইনস্টলেশন:
npm install mysql2
MySQL ব্যবহার করে KoaJS এর সাথে কানেকশন তৈরি করা
const Koa = require('koa');
const mysql = require('mysql2'); // MySQL প্যাকেজ
const app = new Koa();
// MySQL ডাটাবেসের সাথে কানেকশন স্থাপন
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_user',
password: 'your_password',
database: 'your_database',
});
app.use(async (ctx) => {
connection.query('SELECT * FROM users', (err, results) => {
if (err) {
ctx.body = { error: 'Database error' };
ctx.status = 500;
return;
}
ctx.body = results; // ডেটা রেসপন্স হিসেবে পাঠানো
});
});
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
এখানে, mysql2 প্যাকেজের createConnection() মেথড দিয়ে MySQL ডেটাবেসে কানেকশন তৈরি করা হয়েছে। এরপর connection.query() মেথড দিয়ে SQL কুয়েরি চালানো হয়েছে এবং ডেটাবেস থেকে আনা ফলাফলকে রেসপন্স হিসেবে পাঠানো হয়েছে।
- host: MySQL সার্ভারের হোস্ট (এখানে
localhost) - user: MySQL ব্যবহারকারীর নাম
- password: MySQL ব্যবহারকারীর পাসওয়ার্ড
- database: MySQL ডাটাবেসের নাম
৩. এম্বেডেড SQL কুয়েরি এবং প্যারামিটারাইজড কুয়েরি
ডেটাবেসে ডেটা সুরক্ষিতভাবে পুশ করার জন্য প্যারামিটারাইজড কুয়েরি ব্যবহার করা উচিত। এতে SQL ইনজেকশন থেকে রক্ষা পাওয়া যায়।
PostgreSQL উদাহরণ (প্যারামিটারাইজড কুয়েরি):
app.use(async (ctx) => {
const { name, email } = ctx.request.body; // ফর্ম ডেটা থেকে name এবং email নেয়া
const query = 'INSERT INTO users(name, email) VALUES($1, $2)';
const values = [name, email];
const res = await pool.query(query, values);
ctx.body = { message: 'User added successfully' };
});
MySQL উদাহরণ (প্যারামিটারাইজড কুয়েরি):
app.use(async (ctx) => {
const { name, email } = ctx.request.body;
const query = 'INSERT INTO users (name, email) VALUES (?, ?)';
connection.execute(query, [name, email], (err, results) => {
if (err) {
ctx.body = { error: 'Error inserting data' };
ctx.status = 500;
return;
}
ctx.body = { message: 'User added successfully' };
});
});
৪. ডেটাবেসের সাথে নিরাপত্তা
- SQL ইনজেকশন: প্যারামিটারাইজড কুয়েরি ব্যবহার করে SQL ইনজেকশন থেকে সুরক্ষা নিশ্চিত করুন।
- এনক্রিপশন: পাসওয়ার্ড বা সংবেদনশীল ডেটা সংরক্ষণ করার সময় এনক্রিপশন ব্যবহার করুন। যেমন, bcrypt ব্যবহার করে পাসওয়ার্ড হ্যাশিং।
পাসওয়ার্ড হ্যাশিং উদাহরণ:
npm install bcryptjs
const bcrypt = require('bcryptjs');
const hashedPassword = await bcrypt.hash('password123', 10); // পাসওয়ার্ড হ্যাশিং
সারাংশ
KoaJS-এ PostgreSQL বা MySQL এর সাথে কাজ করার জন্য pg (PostgreSQL) বা mysql2 (MySQL) প্যাকেজ ব্যবহার করা হয়। এই প্যাকেজগুলির মাধ্যমে আপনি SQL কুয়েরি চালাতে, ডেটাবেস থেকে ডেটা রিট্রিভ করতে এবং ডেটা ইনসার্ট করতে পারেন। কাস্টম প্যারামিটারাইজড কুয়েরি ব্যবহার করা, ডেটাবেস সুরক্ষা নিশ্চিত করা, এবং সঠিক পাসওয়ার্ড এনক্রিপশন কৌশল অবলম্বন করা গুরুত্বপূর্ণ।
KoaJS-এ ডেটাবেস সংযোগের মাধ্যমে আপনি ডাইনামিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন এবং সহজেই ডেটাবেস পরিচালনা করতে পারবেন।
Read more