تستمر معظم تطبيقات العالم الحقيقي في الاحتفاظ بالبيانات في قواعد البيانات. لذلك من المهم معرفة كيفية ربط تطبيقك بقاعدة بيانات وجلب البيانات منها.

يعد MySQL خيارًا ممتازًا لقاعدة بيانات. إنه سهل الاستخدام ، ولديه دعم واسع النطاق ، وهو أحد أكثر قواعد البيانات العلائقية شيوعًا.

قبل ان تبدأ

نظرًا لأنك ستختبر رمز الاتصال على خادم MySQL محلي ، فستحتاج إلى ذلك تثبيت خادم MySQL أول. بمجرد الانتهاء من ذلك ، أنشئ قاعدة بيانات فارغة وتأكد من أن لديك اسم المستخدم وكلمة المرور في متناول اليد.

قم بإنشاء تطبيق عقدة

في Terminal ، قم بتشغيل الأمر التالي لإنشاء مجلد جديد لتطبيق العقدة الخاص بك:

mkdir عقدة- mysql

انتقل إلى عقدة- MySQL المجلد وتهيئته باستخدام npm:

قرص مضغوط عقدة- MySQL
npm الحرف الأول

سيؤدي هذا إلى إنشاء ملف package.json والذي ، من بين إعدادات أخرى ، سيحتوي على تبعيات مشروعك.

قم بتوصيل العقدة بـ MySQL

هناك عدة طرق يمكنك من خلالها توصيل تطبيق العقدة الخاص بك بـ MySQL. ال mysql2 الحزمة هي خيار ممتاز ، يمكنك تثبيته بأمر مثل هذا:

npm تثبيت mysql2

لإجراء الاتصال ، تحتاج إلى عدة قيم وهي المضيف والمنفذ والمستخدم وقاعدة البيانات وكلمة المرور. فيما يلي مثال يتصل بقاعدة بيانات تسمى

instagram viewer
نيودب على خادم MySQL مثبت محليًا.

مقدار ثابت التكوين = {
المضيف: "localhost"،
ميناء: 3306,
قاعدة البيانات: "nodedb" ،
المستخدم: "الجذر" ،
كلمه السر: "********"،
}

هذا ال التكوين ستمرر إلى طريقة الاتصال كما في البرنامج أدناه.

مقدار ثابت mysql = يتطلب("mysql2")

مقدار ثابت التكوين = {
المضيف: "localhost"،
قاعدة البيانات: "db_name" ،
المستخدم: "mysql_username" ،
كلمة المرور: "mysql_password" ،
اتصال 100,
}

مقدار ثابت اتصال = mysql.createConnection (التكوين)

connect.connect (وظيفة(يخطئ) {
إذا (يخطئ) يرمي(يخطئ) ؛
وحدة التحكم.log ("متصل!") ؛
});

عندما تقوم بتمرير تفاصيل قاعدة البيانات إلى mysql.createConnection () طريقة إنشاء كائن اتصال. سيسمح لك كائن الاتصال بإجراء معاملات مثل إنشاء الجداول أو حذفها أو قراءتها.

على سبيل المثال ، تقوم التعليمة البرمجية التالية بإنشاء جدول في قاعدة البيانات التي تتصل بها.

connect.connect (وظيفة(يخطئ) {
إذا (يخطئ) يرمي يخطئ.
وحدة التحكم.log ("متصل!") ؛

يترك createUser = "إنشاء مستخدمي الجدول (user_id INT (100) ، user_name VARCHAR (255) ، البريد الإلكتروني VARCHAR (255))";

connect.query (createUser ، وظيفة(يخطئ النتائج المجالات) {
إذا (يخطئ) {
وحدة التحكم.log (err.message) ؛
}
});
});

عند تشغيله ، سيقوم هذا الاستعلام بإنشاء جدول جديد يسمى المستخدمين في قاعدة البيانات. يستخدم الاستعلام بناء جملة شائعًا يمكنك التكيف معه إنشاء مخطط قاعدة بيانات MySQL التي تناسب احتياجاتك.

يعمل برنامج الاتصال أعلاه بشكل جيد إذا كنت تريد فقط إجراء اتصال واحد. ومع ذلك ، عند إجراء طلبات اتصال متزامنة ، من الأفضل استخدام تجمع اتصال.

قم بتوصيل العقدة بـ MySQL باستخدام مجموعة الاتصال

يمكن أن يصبح فتح وإغلاق الوصلات مكلفًا ، خاصةً عندما يكون هناك الكثير منها. يساعد تجميع اتصال قاعدة البيانات على تقليل هذه التكلفة عن طريق الحفاظ على مجموعة من الاتصالات المفتوحة. عند تقديم طلب ، يمكن للمجمع توفير اتصال مفتوح عند الطلب.

من خلال القيام بذلك ، توفر الوقت لأنه لا يتعين عليك فتح اتصال جديد في كل مرة.

استخدم التعليمات البرمجية التالية لإنشاء تجمع اتصالات في Node:

مقدار ثابت mysql = يتطلب("mysql2") ؛

مقدار ثابت التكوين = {
مضيف: "مضيف محلي",
قاعدة البيانات: "db_name",
المستعمل: "mysql_username",
كلمه السر: "mysql_password",
اتصالالحد: 100 ،
}

مقدار ثابت pool = mysql.createPool (config) ؛

pool.query ("حدد * من some_table"، (يخطئ ، البيانات) => {
إذا (يخطئ) يرمي(يخطئ)
وحدة التحكم.تسجيل البيانات)؛
});

تذكر تغيير تفاصيل التكوين لتتناسب مع بيئتك الخاصة.

الاتصال الآمن بـ MySQL

تعمل مكتبة mysql2 على تبسيط عملية توصيل تطبيق Node بقاعدة بيانات MySQL. يمكنك استخدام إما عميل واحد أو تجمع اتصالات. ومع ذلك ، إذا كان عليك تقديم طلبات متعددة ، فمن الأفضل استخدام تجمع اتصال لأنه أقل تكلفة.

يعد الاتصال بقاعدة البيانات الخطوة الأولى فقط. يجب عليك أيضًا التأكد من أن البيانات التي تخزنها في قاعدة البيانات آمنة. بعد كل شيء ، تعد MySQL هدفًا شائعًا للمهاجمين. هناك بعض الخطوات الأساسية التي يمكنك اتخاذها لتأمين خادم قاعدة بيانات MySQL. قم بتعيين كلمة مرور مستخدم قوية ، وتقييد عمليات تسجيل الدخول عن بُعد ، ولا تمنح امتيازات غير ضرورية.