آموزش مقدماتی NodeJS | کار با پایگاه داده

اتصال به پایگاه داده

در این بخش یاد می‌گیریم چطور از داخل یک برنامه Node.js به یک پایگاه داده متصل شویم. پایگاه داده جایی است که اطلاعات برنامه (مثل کاربران، محصولات، پیام‌ها و…) به‌صورت دائمی ذخیره می‌شود. بدون پایگاه داده، اطلاعات با بسته شدن برنامه از بین می‌روند.

دو دسته‌ی کلی پایگاه داده وجود دارد که در Node.js زیاد استفاده می‌شوند:

  • پایگاه داده رابطه‌ای (SQL): مثل MySQL، PostgreSQL و SQLite. داده‌ها در جدول‌ها ذخیره می‌شوند و ارتباط بین آن‌ها با کلیدها مشخص می‌شود.
  • پایگاه داده غیررابطه‌ای (NoSQL): مثل MongoDB. داده‌ها در قالب سند (شبیه به آبجکت‌های JSON) ذخیره می‌شوند و ساختار آزادتری دارند.

انتخاب نوع پایگاه داده به نیاز پروژه بستگی دارد. برای شروع، MongoDB با کتابخانه‌ی Mongoose و SQLite با کتابخانه‌ی sqlite3 از ساده‌ترین گزینه‌ها هستند.

برای اتصال به پایگاه داده، معمولاً از یک کتابخانه یا درایور استفاده می‌کنیم. خود Node.js به‌تنهایی با پایگاه داده‌ها کار نمی‌کند؛ باید بسته‌ی مناسب آن پایگاه داده را نصب کنیم.

مثال ساده با MongoDB و Mongoose:

اول بسته‌ی mongoose را نصب می‌کنیم (در محیط آنلاین معمولاً از قبل موجود است یا با دستور npm install mongoose نصب می‌شود). سپس کد زیر را می‌نویسیم:

const mongoose = require('mongoose');

// آدرس اتصال به پایگاه داده
const url = 'mongodb://localhost:27017/mydb';

mongoose.connect(url)
  .then(() => {
    console.log('اتصال به پایگاه داده با موفقیت انجام شد');
  })
  .catch((error) => {
    console.log('خطا در اتصال به پایگاه داده:', error.message);
  });

در این کد:

  • تابع connect آدرس پایگاه داده را می‌گیرد و تلاش می‌کند به آن وصل شود.
  • آدرس شامل پروتکل (mongodb://)، آدرس سرور (localhost)، پورت (27017) و نام پایگاه داده (mydb) است.
  • چون اتصال یک عملیات زمان‌بر است، نتیجه‌ی آن یک Promise برمی‌گرداند. با then موفقیت و با catch خطا را مدیریت می‌کنیم.

مثال ساده با SQLite:

const sqlite3 = require('sqlite3').verbose();

// باز کردن یا ساختن فایل پایگاه داده
const db = new sqlite3.Database('./mydb.sqlite', (error) => {
  if (error) {
    console.log('خطا در اتصال:', error.message);
  } else {
    console.log('اتصال به پایگاه داده SQLite انجام شد');
  }
});

در اینجا اگر فایل mydb.sqlite وجود نداشته باشد، SQLite خودش آن را می‌سازد. بنابراین اتصال به SQLite بسیار ساده است و به سرور جداگانه نیازی ندارد.

نکته‌های مهم در اتصال به پایگاه داده:

  • همیشه اتصال را در ابتدای برنامه یا وقتی لازم شد برقرار کنید، نه در هر درخواست. اتصال مکرر باعث کاهش سرعت می‌شود.
  • خطاها را حتماً مدیریت کنید. اگر اتصال برقرار نشود، برنامه باید پیام مناسبی بدهد و از ادامه‌ی کار جلوگیری کند.
  • اطلاعات حساس مثل نام کاربری و رمز عبور پایگاه داده را مستقیماً در کد ننویسید. بهتر است آن‌ها را در متغیرهای محیطی (environment variables) قرار دهید.
  • آدرس اتصال (connection string) معمولاً شامل نام کاربری، رمز، آدرس سرور، پورت و نام پایگاه داده است.
  • بعد از اتصال موفق، می‌توانید کوئری بزنید، داده اضافه کنید، بخوانید، به‌روزرسانی کنید یا حذف کنید. این کارها در بخش بعدی یعنی انجام عملیات CRUD توضیح داده می‌شود.

در محیط اجرای آنلاین، اگر پایگاه داده‌ی واقعی در دسترس نباشد، می‌توانید برای تمرین از پایگاه داده‌های سبک مثل SQLite استفاده کنید که به فایل روی سیستم نیاز دارد و یا از سرویس‌های ابری رایگان MongoDB مثل MongoDB Atlas استفاده کنید که آدرس اتصال آن‌ها با یک connection string از پیش آماده به شما داده می‌شود.

پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2