العمل مع قواعد البيانات في JavaScript: PostgreSQL وMongoDB للمبتدئين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع قواعد البيانات في JavaScript (Node.js): PostgreSQL و MongoDB للمبتدئين



عند تطوير تطبيقات الويب باستخدام JavaScript (Node.js)، تحتاج دائمًا تقريبًا إلى حفظ البيانات: المستخدمين، الطلبات، المقالات أو السجلات. لهذا الغرض، تُستخدم قواعد البيانات (DB). في هذا الدليل، سنشرح النظامين الأكثر شيوعًا: قواعد البيانات العلائقية PostgreSQL وقواعد البيانات الموجهة للوثائق MongoDB. ستتعلم كيفية الاتصال بهما من Node.js وتنفيذ عمليات CRUD الأساسية (إنشاء، قراءة، تحديث، حذف).



المقالة موجهة للمطورين المبتدئين الذين لديهم معرفة بأساسيات JavaScript. يمكن تشغيل جميع أمثلة الكود في مشروعك.



1. PostgreSQL: قاعدة بيانات علائقية



PostgreSQL هي قاعدة بيانات SQL قوية، حيث يتم تخزين البيانات في جداول ذات أنواع حقول صارمة. للعمل معها في Node.js، سنستخدم الحزمة pg.



1.1. التثبيت والاتصال



أولاً، قم بتثبيت الحزمة عبر npm:



npm install pg


أنشئ ملفًا باسم db.js وقم بإعداد الاتصال بقاعدة بيانات محلية:



const { Pool } = require('pg');

const pool = new Pool({ user: 'postgres', host: 'localhost', database: 'mydb', password: 'password', port: 5432,});

module.exports = pool;


1.2. إنشاء جدول وعمليات CRUD



لنبدأ بإنشاء جدول users يحتوي على الحقول id و name و email. ثم سنقوم بتنفيذ جميع العمليات الأساسية.



const pool = require('./db');

// إنشاء الجدولasync function createTable() { await pool.query(` CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL ); `); console.log('تم إنشاء جدول users');}

// إدراج البيانات (CREATE)async function addUser(name, email) { const result = await pool.query( 'INSERT INTO users (name, email) VALUES ($1, $2) RETURNING *', [name, email] ); return result.rows[0];}

// قراءة البيانات (READ)async function getUsers() { const result = await pool.query('SELECT * FROM users'); return result.rows;}

// تحديث البيانات (UPDATE)async function updateUser(id, name) { const result = await pool.query( 'UPDATE users SET name = $1 WHERE id = $2 RETURNING *', [name, id] ); return result.rows[0];}

// حذف البيانات (DELETE)async function deleteUser(id) { await pool.query('DELETE FROM users WHERE id = $1', [id]); console.log('تم حذف المستخدم');}

// مثال على الاستخدام(async () => { await createTable(); const newUser = await addUser('Ivan', 'ivan@example.com'); console.log('تمت الإضافة:', newUser);

const users = await getUsers(); console.log('جميع المستخدمين:', users);

await updateUser(1, 'Petr'); await deleteUser(2);})();


هام: استخدم دائمًا الاستعلامات ذات المعلمات (عبر $1, $2) لتجنب هجمات SQL injection.



2. MongoDB: قاعدة بيانات NoSQL



MongoDB تخزن البيانات بتنسيق وثائق شبيهة بـ JSON (BSON). بالنسبة لـ Node.js، يتم استخدام السائق الرسمي mongodb أو المكتبة الشائعة mongoose. في هذا المثال، سنستخدم السائق.



2.1. التثبيت والاتصال



npm install mongodb


الاتصال بـ MongoDB المحلية (المنفذ الافتراضي 27017):



const { MongoClient } = require('mongodb');

const uri = 'mongodb://localhost:27017';const client = new MongoClient(uri);

async function connect() { await client.connect(); console.log('تم الاتصال بـ MongoDB'); return client.db('mydb'); // قاعدة البيانات mydb}

module.exports = { connect, client };


2.2. عمليات CRUD مع المجموعة



في MongoDB، تسمى الجداول بالمجموعات (collections)، والصفوف تُسمى

المدونات

توصيات الكتب