مقدمة في العمل مع قواعد البيانات في JavaScript
تطوير الويب الحديث باستخدام JavaScript لا يمكن تصوره بدون التفاعل مع قواعد البيانات. توفر Node.js أدوات قوية للعمل مع قواعد البيانات العلائقية (SQL) وقواعد البيانات الموجهة للمستندات (NoSQL). في هذه المقالة، سنشرح بالتفصيل الاتصال وتنفيذ العمليات الأساسية مع أشهر نظامين لإدارة قواعد البيانات في نظام JavaScript البيئي: PostgreSQL و MongoDB.
ستتعلم كيفية تثبيت برامج التشغيل، إعداد الاتصال، تنفيذ عمليات CRUD (إنشاء، قراءة، تحديث، حذف) واتخاذ الاختيار الصحيح بين SQL و NoSQL لمشروعك.
تحضير البيئة
للعمل مع الأمثلة، ستحتاج إلى تثبيت Node.js (الإصدار 18+) ومدير الحزم npm. تأكد من أن قواعد البيانات قيد التشغيل محلياً أو متاحة عن بُعد.
1. العمل مع PostgreSQL في Node.js
PostgreSQL هي قاعدة بيانات علائقية قوية مفتوحة المصدر. للعمل معها في Node.js، سنستخدم مكتبة pg — العميل الرسمي.
التثبيت والاتصال
npm install pgلنقم بإنشاء ملف db.js لإعداد مجموعة الاتصالات:
const { Pool } = require('pg');
const pool = new Pool({ user: 'postgres', host: 'localhost', database: 'mydb', password: 'secret', port: 5432,});
module.exports = pool;عمليات CRUD مع PostgreSQL
لننظر إلى الاستعلامات الأساسية لجدول users:
إنشاء جدول (CREATE)
const createTable = async () => { const query = ` CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(255) UNIQUE NOT NULL, age INTEGER, created_at TIMESTAMP DEFAULT NOW() ); `; await pool.query(query); console.log('تم إنشاء جدول users');};إدراج البيانات (INSERT)
const addUser = async (name, email, age) => { const text = 'INSERT INTO users(name, email, age) VALUES($1, $2, $3) RETURNING *'; const values = [name, email, age]; const res = await pool.query(text, values); console.log('تمت إضافة المستخدم:', res.rows[0]); return res.rows[0];};
// الاستخدامaddUser('إيفان بيتروف', 'ivan@example.com', 30);قراءة البيانات (SELECT)
const getUsers = async (ageLimit) => { const res = await pool.query( 'SELECT * FROM users WHERE age > $1 ORDER BY created_at DESC', [ageLimit] ); return res.rows;};
// الحصول على المستخدمين الأكبر من 25 عاماًgetUsers(25).then(users => console.log(users));التحديث والحذف (UPDATE / DELETE)
const updateUser = async (id, newName) => { const res = await pool.query( 'UPDATE users SET name = $1 WHERE id = $2 RETURNING *', [newName, id] ); return res.rows[0];};
const deleteUser = async (id) => { await pool.query('DELETE FROM users WHERE id = $1', [id]); console.log(`تم حذف المستخدم ذو المعرف ${id}`);};هام: استخدم دائماً الاستعلامات المعلمة ($1, $2) لمنع هجمات SQL injection.
2. العمل مع MongoDB في Node.js
MongoDB هي قاعدة البيانات NoSQL الأكثر شهرة، حيث تخزن البيانات بتنسيق مستندات شبيهة بـ JSON. للعمل معها، نستخدم برنامج التشغيل الرسمي mongodb أو مكتبة ODM الشهيرة mongoose.
التثبيت والاتصال (باستخدام mongoose)
npm install mongooseconst mongoose = require('mongoose');
const connectDB = async () => { try { await mongoose.connect('mongodb://localhost:27017/mydb'); console.log('تم الاتصال بـ MongoDB'); } catch (error) { console.error('خطأ في الاتصال:', error); }};
connectDB();