andriajah Mon Mar 2021 2 years ago

Contoh Connection MySQL Database Server di Node.js

Dalam tutorial ini, Anda akan belajar cara terhubung ke server database MySQL dari aplikasi node.js.

Menginstal driver node.js untuk MySQL

Ada beberapa opsi untuk berinteraksi dengan MySQL dari aplikasi node.js. Dalam tutorial ini, kami akan menunjukkan kepada Anda bagaimana menggunakan driver node.js untuk MySQL yang dipanggil  mysqljs/mysql.

Pertama, buat folder untuk menyimpan aplikasi node.js misalnya, node-mysql dan gunakan perintah npm init  untuk membuat package.jsonfile:

npm init

Kedua, instal node.js untuk paket MySQL dengan menggunakan perintah berikut:

npm install mysql

Ketiga, buat bagian connect.js dalam folder node-mysql untuk menyimpan kode yang terhubung ke server database MySQL.

Kami akan menggunakan todoapp database untuk demonstrasi, oleh karena itu, Anda harus membuat database di server database MySQL Anda dengan menjalankan CREATE DATABASE pernyataan berikut :

CREATE DATABASE todoapp;

Setelah database dibuat, Anda siap untuk menyambungkannya dari aplikasi Node.js.

Menghubungkan ke server database MySQL dari node.js

Pertama, import modul  mysql dengan menggunakan pernyataan berikut:

let mysql = require('mysql');

Kedua, buat koneksi ke database MySQL dengan memanggil metode createConnection() dan memberikan informasi detail di server MySQL seperti host, user, password, dan database sebagai berikut:

let connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'todoapp'
});

Dalam contoh ini, kami membuat koneksi ke database  todoapp di server database lokal.

Ketiga, panggil metode  connect() pada objek connection untuk terhubung ke server database MySQL:

connection.connect(function(err) {
  if (err) {
    return console.error('error: ' + err.message);
  }

  console.log('Connected to the MySQL server.');
});

Metode connect() menerima fungsi callback yang memiliki err argumen yang menyediakan kesalahan rinci jika ada kesalahan terjadi.

 

Mari kita uji program connect.js.

> node connect.js
Connected to the MySQL server

Jika Anda melihat pesan “Connected to the MySQL server”, maka selamat, Anda telah berhasil terhubung ke server database MySQL dari aplikasi node.js.

Misalkan database todoapps tidak ada di server database dan Anda mencoba menyambungkannya, Anda akan mendapatkan pesan error:

> node connect.js
error: ER_BAD_DB_ERROR: Unknown database 'todoapps'

Perhatikan bahwa setiap metode yang Anda panggil pada objek  connection antri dan dijalankan secara berurutan.

Menutup koneksi database

Untuk menutup koneksi database dengan baik, Anda memanggil metode  end() pada objek connection.

Metode  end() memastikan bahwa semua pertanyaan yang tersisa selalu dijalankan sebelum koneksi database ditutup.

connection.end(function(err) {
  if (err) {
    return console.log('error:' + err.message);
  }
  console.log('Close the database connection.');
});

Untuk memaksa koneksi segera ditutup, Anda dapat menggunakan metode destroy() ini. Metode destroy() menjamin bahwa tidak ada lagi callback atau peristiwa akan dipicu untuk sambungan.

connection.destroy();

Perhatikan bahwa metode  destroy() ini tidak mengambil argumen callback seperti metode end() tersebut.

Pooling connections

Driver MySQL untuk modul node.js memberi Anda fitur penggabungan koneksi bawaan. Misalkan, Anda ingin membuat pool koneksi dengan 5 koneksi:

var pool = mysql.createPool({
    connectionLimit: 5,
    host: 'localhost',
    user: 'root',
    password: '', 
    database: 'todoapp'
});

Untuk mendapatkan koneksi dari pool, Anda menggunakan metode getConnection():

pool.getConnection(function(err, connection) {
  // execute query
  // ...
});

Untuk mengembalikan koneksi ke kolam setelah Anda selesai dengannya, Anda dapat memanggil connection.release(). Setelah itu, koneksi akan tersedia di pool dan siap digunakan lagi oleh orang lain.

pool.getConnection(function(err, connection) {
  // execute query
  // ...
  connnection.release();
});

Untuk menutup koneksi dan menghapusnya, Anda menggunakan  metode connection.destroy() ini. Koneksi baru akan dibuat di kumpulan jika diperlukan lain kali.

Penting untuk diperhatikan bahwa pool akan membuat koneksi dengan malas. Misalnya, jika Anda mengkonfigurasi pool dengan 5 koneksi tetapi Anda hanya menggunakan 2 koneksi secara bersamaan, maka pool tersebut hanya membuat 2 koneksi.

Untuk menutup semua koneksi, Anda menggunakan metode end()  objek pool sebagai berikut:

pool.end(function(err) {
  if (err) {
    return console.log(err.message);
  }
  // close all connections
});

Dalam tutorial ini, Anda telah mempelajari cara menghubungkan ke database MySQL dari aplikasi node.js.

connection mysql database from node js mysql node js