برنامه نویسی

ادامه موضوع: نحوه ایجاد یک برنامه مالی شخصی با ادغام Google Drive، MySQL و Node.js

مرحله 6: اتصال به پایگاه داده**

در این مرحله، نحوه برقراری ارتباط بین برنامه Node.js و پایگاه داده MySQL را برای ماندگاری موثر داده ها بررسی می کنیم. شما یاد خواهید گرفت که:

  • اعتبار پایگاه داده خود را در Node.js تنظیم کنید.
  • از کتابخانه استفاده کنید mysql2 برای مدیریت اتصال
  • ایجاد پرس و جوهای اساسی برای درج، به روز رسانی و بازیابی داده ها.

این مرحله برای بهینه سازی عملکرد برنامه، اجتناب از خواندن مداوم فایل ها در Google Drive و امکان تجزیه و تحلیل کارآمدتر داده های ذخیره شده ضروری است. 🚀

مستندات کد اتصال به پایگاه داده با MySQL در Node.js

این کد با استفاده از یک پایگاه داده MySQL ارتباط برقرار می کند mysql2 و خطاها و پرس و جوهای اتصال را با استفاده از وعده ها مدیریت کنید. هر بخش از فرآیند برای مستندسازی استفاده از آن در زیر به تفصیل شرح داده شده است.


تنظیمات کد

  1. الزامات محیطی و پیکربندی:

    • بسته مورد نیاز mysql2 برای تعامل با پایگاه داده MySQL.
    • استفاده می شود dotenv برای مدیریت متغیرهای محیطی، اجازه می دهد اطلاعات حساس مانند اعتبار پایگاه داده به طور ایمن پیکربندی شوند.
    • تنظیمات اتصال از یک فایل پیکربندی یا در صورت استفاده از متغیرهای محیطی به دست می آید dotenv.
    const mysql = require('mysql2');
    const { promisify } = require('util');
    require('dotenv').config();  // Cargar variables de entorno
    const localhost = process.env.DATABASE_CONFIG || require('../config');  // Recuperar configuración desde dotenv o archivo de configuración
    
  2. ایجاد استخر اتصال:

    • یک مخزن اتصال با استفاده از پیکربندی بازیابی شده ایجاد می شود. این به حفظ اتصالات پایدار و قابل استفاده مجدد و بهینه سازی عملکرد کمک می کند.
    const pool = mysql.createPool(localhost);
    
  3. پرس و جو قول:

    • پرس و جوها به صورت ناهمزمان با استفاده از آنها رسیدگی می شوند promisify. این امر مدیریت نتایج و خطاهای پرس و جو را ساده می کند.
    pool.query = promisify(pool.query);
    
  4. مدیریت خطا:

    • خطاهای احتمالی اتصال و پرس و جو رسیدگی می شود. به عنوان مثال، خطاهایی مانند عدم دسترسی، قطع شدن اتصال، یا رسیدن به حداکثر اتصال به طور خاص رسیدگی می شوند.
    pool.getConnection()
        .then(connection => {
            connection.release();
            console.log("Conexión establecida correctamente.");
        })
        .catch(err => {
            if (err.code === 'ER_NOT_SUPPORTED_AUTH_MODE' || err.code === 'ER_ACCESS_DENIED_ERROR') {
                console.error('Error de acceso denegado. Revise las credenciales.');
            } else if (err.code === 'PROTOCOL_CONNECTION_LOST') {
                console.error('La conexión con la base de datos se perdió.');
            } else if (err.code === 'ER_CON_COUNT_ERROR') {
                console.error('Demasiadas conexiones activas.');
            } else if (err.code === 'ECONNREFUSED') {
                console.error('La conexión con la base de datos fue rechazada.');
            } else {
                console.error(`Error desconocido: ${err.message}`);
            }
        });
    

توضیح مفصل کد

  1. الزامات و پیکربندی:

    • mysql2 یک API برای تعامل با MySQL فراهم می کند.
    • dotenv برای مدیریت تنظیمات از طریق یک فایل استفاده می شود .env یا مستقیماً متغیرهای محیطی
    • localhost شامل داده های پیکربندی پایگاه داده مانند میزبان، کاربر، رمز عبور و غیره است.
  2. ایجاد استخر:

    • mysql.createPool(localhost) یک اتصال پایدار ایجاد می کند که برای برنامه هایی که چندین اتصال را به طور همزمان مدیریت می کنند ایده آل است.
  3. قول دادن:

    • پرس و جوهای SQL برای استفاده به عنوان توابع ناهمزمان وعده داده شده اند، که مدیریت آنها را در برنامه های مدرن آسان تر می کند.
  4. مدیریت خطا:

    • خطاهای رایج مانند اتصالات از دست رفته، دسترسی ها رد شده یا رد درخواست ها با دقت بررسی می شوند تا پیام های مفیدی به توسعه دهنده ارائه شود و از خرابی ها جلوگیری شود.

استفاده در پروژه ها

این کد برای اتصال برنامه‌های Node.js به پایگاه‌های داده MySQL مفید است و راه‌حلی قوی برای مدیریت اتصال و خطا با استفاده از تکنیک‌های مدرن مانند promisification و مدیریت صحیح استثنا ارائه می‌دهد.


وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا