Node.js مانند JAVA و PHP، یک زبان برنامه نویسی محبوب برای برنامه‌های وب است و MySQL، محبوب‌ترین پایگاه داده‌ای است که برای ذخیره داده استفاده می‌شود. درایور پایگاه داده MySQL برای Node.js در مخزن NPM موجود است. در این آموزش، نحوه اتصال به پایگاه داده MySQL با استفاده از node.js و انجام عملیات INSERT ،UPDATE ،SELECT و DELETE برروی جداول پایگاه داده MySQL  شرح داده شده است.

 

ابتدا برای برنامه‌های خود، یک پایگاه داده و یک کاربر در MySQL ایجاد کنید. به عنوان مثال، با استفاده از دستور زیر می‌توان پایگاه داده mydb را ایجاد کرده و از آن استفاده نمایید.

mysql> CREATE DATABASE mydb;
mysql> USE mydb;

اکنون یک جدول برای انجام عملیات insert ،update و delete ایجاد کنید.

CREATE TABLE users (
  id int(11) NOT NULL AUTO_INCREMENT,
  firstname varchar(30),
  lastname varchar(30),
  email VARCHAR(50),
  creation_date TIMESTAMP,
  PRIMARY KEY (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

پس از آن، یک کاربر mysql برای دسترسی به پایگاه داده از برنامه ایجاد نمایید.

mysql> GRANT ALL on mydb.* to 'myusr'@'localhost' identified by '123456';
mysql> FLUSH PRIVILEGES;

 

نصب ماژول MySQL Node.js

درایور MySQL برای node.js در ابزار Node Package Manager (NPM) موجود است. برای نصب آن از دستور زیر استفاده کنید.

sudo npm install mysql

 

ایجاد برنامه ساده برای اتصال MySQL

در ادامه، یک نمونه از برنامه node.js آورده شده است که برنامه node.js را با سرور MySQL متصل می‌کند. با توجه به نتایج اتصالات ممکن است پیام موفقیت یا خطا نشان داده شود. پس از پایان برنامه اتصال بسته می‌شود.

در ابتدای کار، یک فایل app.js ایجاد نمایید.

cd myApp
vim app.js

و محتوای زیر را به فایل بالا اضافه کنید.

var mysql  = require('mysql');
var dbconn = mysql.createConnection({
  host     : 'localhost',
  user     : 'myusr',
  password : '123456',
  database : 'mydb'
});
 
dbconn.connect(function(err){
  if(err){
    console.log('Database connection error');
  }else{
    console.log('Database connection successful');
  }
});
 
dbconn.end(function(err) {
  // Function to close database connection
});

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

node app.js

Database connection successful

 

وارد کردن داده‌ها در جدول MySQL

به منظور وارد کردن داده‌ها در جدول ایجاد شده کافیست کد زیر را در اسکریپت بالا اضافه کنید.

var mysql  = require('mysql');
var dbconn = mysql.createConnection({
  host     : 'localhost',
  user     : '<DB_USER>',
  password : '<DB_PASSWORD>',
  database : '<DB_NAME>'
});

dbconn.connect(function(err){
  if(err){
    console.log('Database connection error');
  }else{
    console.log('Database connection successful');
  }
});


var record= { firstname: 'Rahul', lastname: 'Kumar', email: 'abc@domain.com' };

dbconn.query('INSERT INTO users SET ?', record, function(err,res){
  if(err) throw err;

  console.log('Last record insert id:', res.insertId);
});

dbconn.end(function(err) {
  // Function to close database connection
}

اکنون اسکریپت app.js را با استفاده از خط فرمان اجرا نمایید و مطمئن شوید که داده‌ها به درستی در پایگاه داده وارد شده‌اند. این مرحله را چند بار دیگر با به روزرسانی مقادیر موجود در اسکریپت فوق تکرار کنید.

node app.js

Database connection successful
Last record insert id: 5

علاوه بر این، با استفاده از خط فرمان mysql، رکورد اضافه شده در جدول پایگاه داده mydb را بررسی نمایید.

mysql> select * from users;

+----+-----------+----------+----------------+---------------------+
| id | firstname | lastname | email          | creation_date       |
+----+-----------+----------+----------------+---------------------+
|  5 | Rahul     | Kumar    | abc@domain.com | 2016-01-22 17:16:19 |
|  6 | John      | Smith    | xyz@domain.com | 2016-01-22 17:16:55 |
+----+-----------+----------+----------------+---------------------+
2 row in set (0.01 sec)

 

انتخاب داده‌ها از جدول MySQL

اکنون اسکریپت app.js را ویرایش کرده و کد زیر را اضافه نمایید. با این کار، تمام رکوردهای جدول در پایگاه داده mydb واکشی می‌شوند.

dbconn.query('SELECT * FROM users',function(err, records){
  if(err) throw err;

  console.log('Data received from Db:n');
  console.log(records);
});

شما می‌توانید جستجو را براساس مقادیر مورد نظر سفارشی کنید.

dbconn.query('SELECT * FROM users WHERE id = ?' [5] ,function(err, records){
  if(err) throw err;

  console.log('Data received from Db:n');
  console.log(records);
});

 

به روزرسانی داده‌ها از جدول MySQL

اگر می‌خواهید، داده‌های موجود در جدول MySQL را به روز نمایید کافیست از کد زیر استفاده کنید.

dbconn.query('SELECT users SET email = ? WHERE id = ?', ['new@domain.com', 6], function(err, result){
  if(err) throw err;

  console.log('Record Updated ' + result.changedRows + ' rows');
});

اکنون اگر مقادیر را در جدول پایگاه داده مشاهده نمایید، متوجه می‌شوید که مقادیر تغییر کرده‌اند.

mysql> select * from users;

+----+-----------+----------+----------------+---------------------+
| id | firstname | lastname | email          | creation_date       |
+----+-----------+----------+----------------+---------------------+
|  5 | Rahul     | Kumar    | abc@domain.com | 2016-01-22 17:16:19 |
|  6 | John      | Smith    | new@domain.com | 2016-01-22 17:16:55 |
+----+-----------+----------+----------------+---------------------+
2 row in set (0.01 sec)

 

حذف داده‌ها از جدول MySQL

به منظور حذف برخی از رکوردهای جدول کافیست کد زیر را در کد برنامه node.js خود اضافه کنید.

dbconn.query('DELETE FROM users WHERE id = ?', [6], function(err, result){
  if(err) throw err;

  console.log('Record Updated ' + result.affectedRows + ' rows');
});

اکنون با بررسی مقادیر جدول پایگاه داده، مشاهده خواهید کرد که آن رکوردها از جدول حذف شده‌اند.

mysql> select * from users;

+----+-----------+----------+----------------+---------------------+
| id | firstname | lastname | email          | creation_date       |
+----+-----------+----------+----------------+---------------------+
|  5 | Rahul     | Kumar    | abc@domain.com | 2016-01-22 17:16:19 |
+----+-----------+----------+----------------+---------------------+
2 row in set (0.01 sec)

 

 

 

منبع:

tecadmin