Node.js • المستوى الثالث • الدرس 1
العودة لفهرس المستوىالاتصال بقواعد البيانات (Database Integration)
أهداف الدرس العلمية
- فهم أهمية قواعد البيانات لحفظ بيانات التطبيق الدائمة.
- التعامل مع عمليات الاتصال غير المتزامنة بـ
async/await. - الفرق بين قواعد البيانات العلائقية (SQL) وغير العلائقية (NoSQL).
- معالجة الأخطاء في عمليات الاتصال بـ
try/catch.
1. ربط Node.js بقواعد البيانات
تحتاج التطبيقات الحقيقية إلى حفظ بيانات المستخدمين والمنتجات، نستخدم مكتبات الربط المخصصة للاتصال بالخادم قبل البدء بالاستماع للطلبات.
javascript
// MongoDB (NoSQL) — عبر Mongoose
const mongoose = require('mongoose');
await mongoose.connect('mongodb://localhost:27017/nahdaDB');
console.log('✅ MongoDB Connected');
// PostgreSQL (SQL) — عبر pg
const { Client } = require('pg');
const client = new Client({ connectionString: 'postgresql://...' });
await client.connect();2. مقارنة أنواع قواعد البيانات
🗄️ SQL (علائقية)
- • PostgreSQL, MySQL
- • جداول + صفوف + أعمدة
- • بنية ثابتة (Schema)
- • علاقات قوية بين الجداول
📦 NoSQL (غير علائقية)
- • MongoDB, Firebase
- • مستندات (Documents)
- • مرنة في البنية
- • سرعة عالية في القراءة
التطبيق العملي المباشر
تحدي الدرس الأول: جلب بيانات بعد الاتصال
قم بالتعديل على الكود في المحرر أدناه:
- غيّر اسم قاعدة البيانات في الرابط من
myAppإلىnahdaDB. - أضف دالة
async fetchUsers()تُعيد مصفوفة تحتوي على مستخدمين. - نادِ
fetchUsers()داخلstartServerبعد الاتصال. - اطبع عدد المستخدمين بأسماءهم بـ
console.log. - غلّف الكود داخل
try/catchلمعالجة الأخطاء.
⏳ جارٍ تحميل المحرر التفاعلي...