أساسيات العمل مع MySQL و Node

MySQL هي واحدة من أكثر قواعد البيانات العلائقية شيوعًا في العالم. تعرف على كيفية جعله يعمل مع Node.js

MySQL هي واحدة من أكثر قواعد البيانات العلائقية شيوعًا في العالم.

يحتوي نظام Node البيئي بالطبع على العديد من الحزم المختلفة التي تتيح لك التفاعل مع MySQL وتخزين البيانات واسترداد البيانات وما إلى ذلك.

سنستخدمmysqljs/mysql، وهي حزمة تحتوي على أكثر من 12.000 نجمة على GitHub وكانت موجودة منذ سنوات.

تثبيت حزمة Node mysql

يمكنك تثبيته باستخدام ملفات

npm install mysql

تهيئة الاتصال بقاعدة البيانات

عليك أولاً تضمين الحزمة:

const mysql = require('mysql')

وتقوم بإنشاء اتصال:

const options = {
  user: 'the_mysql_user_name',
  password: 'the_mysql_user_password',
  database: 'the_mysql_database_name'
}
const connection = mysql.createConnection(options)

تبدأ اتصالاً جديدًا عن طريق الاتصال بـ:

connection.connect(err => {
  if (err) {
    console.error('An error occurred while connecting to the DB')
    throw err
  }
})

خيارات الاتصال

في المثال أعلاه ، فإن ملفoptionsيحتوي الكائن على 3 خيارات:

const options = {
  user: 'the_mysql_user_name',
  password: 'the_mysql_user_password',
  database: 'the_mysql_database_name'
}

هناك الكثير الذي يمكنك استخدامه ، بما في ذلك:

  • host، اسم مضيف قاعدة البيانات ، افتراضيًاlocalhost
  • port, the MySQL server port number, defaults to 3306
  • socketPath، تستخدم لتحديد مقبس يونكس بدلاً من المضيف والمنفذ
  • debug، بشكل افتراضي معطل ، يمكن استخدامها لتصحيح الأخطاء
  • trace، افتراضيًا ممكّنًا ، يطبع آثار المكدس عند حدوث أخطاء
  • ssl، تستخدم لإعداد اتصال SSL بالخادم (خارج نطاق هذا البرنامج التعليمي)

قم بإجراء استعلام SELECT

أنت الآن جاهز لإجراء استعلام SQL في قاعدة البيانات. بمجرد تنفيذ الاستعلام ، سوف يستدعي وظيفة رد الاتصال التي تحتوي على خطأ نهائي ، والنتائج والحقول.

connection.query('SELECT * FROM todos', (error, todos, fields) => {
  if (error) {
    console.error('An error occurred while executing the query')
    throw error
  }
  console.log(todos)
})

يمكنك تمرير القيم التي سيتم تجاوزها تلقائيًا:

const id = 223
connection.query('SELECT * FROM todos WHERE id = ?', [id], (error, todos, fields) => {
  if (error) {
    console.error('An error occurred while executing the query')
    throw error
  }
  console.log(todos)
})

لتمرير قيم متعددة ، فقط ضع المزيد من العناصر في المصفوفة التي تمررها كمعامل ثاني:

const id = 223
const author = 'Flavio'
connection.query('SELECT * FROM todos WHERE id = ? AND author = ?', [id, author], (error, todos, fields) => {
  if (error) {
    console.error('An error occurred while executing the query')
    throw error
  }
  console.log(todos)
})

قم بإجراء استعلام INSERT

يمكنك تمرير كائن

const todo = {
  thing: 'Buy the milk'
  author: 'Flavio'
}
connection.query('INSERT INTO todos SET ?', todo, (error, results, fields) => {
  if (error) {
    console.error('An error occurred while executing the query')
    throw error
  }
})

إذا كان الجدول يحتوي على مفتاح أساسي معauto_increment، سيتم إرجاع قيمة ذلك فيresults.insertIdالقيمة:

const todo = {
  thing: 'Buy the milk'
  author: 'Flavio'
}
connection.query('INSERT INTO todos SET ?', todo, (error, results, fields) => {
  if (error) {
    console.error('An error occurred while executing the query')
    throw error
  }}
  const id = results.resultId
  console.log(id)
)

أغلق الاتصال

عندما تحتاج إلى إنهاء الاتصال بقاعدة البيانات ، يمكنك الاتصال بـend()طريقة:

connection.end()

يعمل هذا على التأكد من إرسال أي استعلام معلق ، وإنهاء الاتصال بأمان.

تحميل مجانيكتيب Node.js


المزيد من دروس العقدة: