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