بسته mysql2 اتصال به پایگاه داده از Node را ساده می کند. همه چیز را در مورد آن بیاموزید.
اکثر برنامه های کاربردی دنیای واقعی داده ها را در پایگاه های داده باقی می مانند. بنابراین مهم است که بدانید چگونه برنامه خود را به یک پایگاه داده متصل کنید و داده ها را از آن واکشی کنید.
MySQL یک انتخاب عالی برای پایگاه داده است. استفاده از آن آسان است، پشتیبانی گسترده ای دارد و یکی از محبوب ترین پایگاه داده های رابطه ای است.
قبل از اینکه شروع کنی
از آنجایی که در حال آزمایش کد اتصال روی سرور محلی MySQL هستید، ابتدا باید یک سرور MySQL نصب کنید. پس از انجام این کار، یک پایگاه داده خالی ایجاد کنید و مطمئن شوید که نام کاربری و رمز عبور را در اختیار دارید.
یک برنامه Node ایجاد کنید
در ترمینال خود، دستور زیر را برای ایجاد یک پوشه جدید برای برنامه نود خود اجرا کنید:
mkdir node-mysql
به پوشه node-mysql بروید و آن را با استفاده از npm مقداردهی اولیه کنید:
cd node-mysql
npm init -y
این یک فایل package.json ایجاد می کند که در میان سایر تنظیمات، وابستگی های پروژه شما را نگه می دارد.
Node را به MySQL متصل کنید
راه های مختلفی وجود دارد که می توانید برنامه نود خود را به MySQL متصل کنید. بسته mysql2 یک انتخاب عالی است که می توانید با دستور زیر نصب کنید:
npm install mysql2
برای ایجاد اتصال، به چندین مقدار از جمله هاست، پورت، کاربر، پایگاه داده و رمز عبور نیاز دارید. در اینجا یک مثال است که به یک پایگاه داده به نام nodedb در سرور MySQL که به صورت محلی نصب شده است متصل می شود.
const config = {
host: "localhost",
port: 3306,
database: "nodedb",
user: "root",
password: "********",
}
این شیء پیکربندی است که مانند برنامه زیر به روش اتصال ارسال می کنید.
const mysql = require("mysql2")
const config = {
host: "localhost",
database: "db_name",
user: "mysql_username",
password: "mysql_password",
connectionLimit: 100,
}
const connection = mysql.createConnection(config)
connection.connect(function(err) {
if (err) throw(err);
console.log("Connected!");
});
هنگامی که جزئیات پایگاه داده را به متد ()mysql.createConnection میدهید، یک شیء اتصال ایجاد میکنید. شی اتصال به شما امکان می دهد تراکنش هایی مانند ایجاد، حذف یا خواندن جداول را انجام دهید.
به عنوان مثال، کد زیر یک جدول در پایگاه داده ای که به آن متصل می شوید ایجاد می کند.
connection.connect(function(err) {
if (err) throw err;
console.log("Connected!");
let createUser = `CREATE TABLE users (user_id INT(100), user_name VARCHAR(255), email VARCHAR(255))`;
connection.query(createUser, function(err, results, fields) {
if (err) {
console.log(err.message);
}
});
});
هنگامی که آن را اجرا می کنید، این کوئری یک جدول جدید به نام کاربران در پایگاه داده ایجاد می کند. پرس و جو از نحو رایجی استفاده می کند که می توانید آن را برای ایجاد یک طرح پایگاه داده MySQL متناسب با نیازهای خود وفق دهید.
اگر میخواهید فقط یک اتصال ایجاد کنید، برنامه اتصال بالا به خوبی کار میکند. با این حال، هنگام ایجاد درخواست اتصال همزمان، بهتر است از یک استخر اتصال استفاده کنید.
Node را با استفاده از Connection Pool به MySQL متصل کنید
باز کردن و بستن اتصالات می تواند گران باشد، به خصوص زمانی که تعداد آنها زیاد باشد. ادغام اتصال پایگاه داده با حفظ مجموعه ای از اتصالات باز به کاهش این هزینه کمک می کند. هنگامی که درخواستی ارائه می شود، استخر می تواند در صورت تقاضا یک اتصال باز ارائه دهد.
با این کار در زمان صرفه جویی می کنید زیرا مجبور نیستید هر بار یک اتصال جدید باز کنید.
برای ایجاد یک اتصال Pool در Node از کد زیر استفاده کنید:
const mysql = require("mysql2");
const config = {
host: "localhost",
database: "db_name",
user: "mysql_username",
password: "mysql_password",
connectionLimit: 100,
}
const pool = mysql.createPool(config);
pool.query("SELECT * FROM some_table", (err, data) => {
if (err) throw(err)
console.log(data);
});
به یاد داشته باشید که جزئیات پیکربندی را برای مطابقت با محیط خود تغییر دهید.
اتصال ایمن به MySQL
کتابخانه mysql2 فرآیند اتصال یک برنامه Node به پایگاه داده MySQL را ساده می کند. می توانید از یک کلاینت منفرد یا یک استخر اتصال استفاده کنید. با این حال، اگر مجبور به ارائه چندین درخواست هستید، بهتر است از یک استخر اتصال استفاده کنید زیرا هزینه کمتری دارد.
اتصال به پایگاه داده تنها اولین مرحله است. همچنین باید اطمینان حاصل کنید که داده هایی که در پایگاه داده ذخیره می کنید ایمن هستند. پس از همه، MySQL یک هدف محبوب برای مهاجمان است. چند مرحله اساسی وجود دارد که می توانید برای ایمن سازی سرور پایگاه داده MySQL خود بردارید. یک رمز عبور قوی برای کاربر تنظیم کنید، ورود از راه دور را محدود کنید و امتیازات غیر ضروری را اعطا نکنید.