NahdaAIنهضة
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)
  • • مرنة في البنية
  • • سرعة عالية في القراءة
التطبيق العملي المباشر

تحدي الدرس الأول: جلب بيانات بعد الاتصال

قم بالتعديل على الكود في المحرر أدناه:

  1. غيّر اسم قاعدة البيانات في الرابط من myApp إلى nahdaDB.
  2. أضف دالة async fetchUsers() تُعيد مصفوفة تحتوي على مستخدمين.
  3. نادِ fetchUsers() داخل startServer بعد الاتصال.
  4. اطبع عدد المستخدمين بأسماءهم بـ console.log.
  5. غلّف الكود داخل try/catch لمعالجة الأخطاء.
⏳ جارٍ تحميل المحرر التفاعلي...