sumber : https://www.petanikode.com/nodejs-mysql/
Membuat Project Nodejs
Buatlah direktori baru bernama nodejs-mysql
:
mkdir nodejs-mysql
Nanti di dalam direktori ini akan berisi file-file berikut:
nodejs-mysql/
├── create_db.js
├── create_table.js
├── db_config.js
├── delete.js
├── insert.js
├── insert_multi.js
├── read.js
└── update.js
Install Modul MySQL
Kita membutuhkan modul mysql
untuk menghubungkan Nodejs dengan MySQL.
Modul ini tidak dibawa secara default oleh Nodejs. Karena itu, kita harus menginstalnya.
Ketik perintah berikut untuk menginstal modul mysql
:
npm install mysql
Tunggulah sampai prosesnya selesai.
Menghubungkan Nodejs dengan MySQL
Buat file baru bernama db_config.js
, kemudian isi dengan kode berikut:
var mysql = require('mysql');
var db = mysql.createConnection({
host: "localhost",
user: "dian",
password: "kopi"
});
db.connect(function(err) {
if (err) throw err;
console.log("Connected!");
});
Perhatikan parameter yang kita berikan pada method createConnection()
…
…di sana kita harus isi dengan alamat host
, user
mysql, dan password
mysql.
Biasanya, kalau menggunakan XAMPP, user-nya adalah root
dan tanpa password.
Jadi gunakan ini untuk XAMPP:
var db = mysql.createConnection({
host: "localhost",
user: "root",
password: ""
});
Setelah itu, coba eksekusi file db_config.js
.
Bila pesan Connected!
ditampilkan, maka itu artinya koneksi program nodejs kita dengan server mysql berhasil.
Namun, apabila gagal…
…maka akan tampil error seperti ini:
Errornya:
Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'dian'@'localhost' (using password: YES)
Ini disebabkan karena saya menggunakan password yang salah.
Membuat Database dengan Nodejs
Kita sudah berhasil menghubunkan Nodejs dengan Mysql. Langkah berikutnya adalah melakukan query.
Query atau SQL (Structured Query Language) merupakan bahasa yang digunakan untuk mengakses MySQL.
Pertama kita akan coba query untuk membuat database.
Sudah tahu query-nya apa?
Belum?
Waduh, coba belajar MySQL dulu…
Berikut ini query untuk membuat database:
CREATE DATABASE nama_database;
Nah, query ini akan kita eksekusi di dalam program Nodejs.
Silahkan buat file baru bernama create_db.js
, kemudian isi dengan kode berikut:
var db = require("./db_config");
db.connect(function(err) {
if (err) throw err;
let sql = "CREATE DATABASE petani_kopi";
db.query(sql, function (err, result) {
if (err) throw err;
console.log("Database created");
});
});
Pada kode di atas, kita mengimpor file db_config.js
sebagai modul.
Berarti kita harus melakukan ekspor di dalam db_config.js
agar bisa di-impor.
Tambahkan dan ubah db_config.js
menjadi seperti ini:
var mysql = require('mysql');
var db = mysql.createConnection({
host: "localhost",
user: "dian",
password: "kopi"
});
module.exports = db;
Setelah itu, coba eksekusi program create_db.js
.
Databasenya berhasil dibuat.
Kalau kita cek dari PHPmyadmin, maka akan terlihat seperti ini:
Nama database-nya petani_kopi
, karena tadi di kode SQL pada programnya kita memberikan nama itu.
var db = require("./db_config");
db.connect(function(err) {
if (err) throw err;
let sql = "CREATE DATABASE petani_kopi";
db.query(sql, function (err, result) {
if (err) throw err;
console.log("Database created");
});
});
Setiap kita ingin melakukan query SQL, kita harus membuka koneksi terlebih dahulu dengan fungsi db.connect()
.
Lalu di dalamnya, kita bisa memanggil fungsi db.query()
.
Fungsi db.query()
memiliki dua parameter yang harus diberikan.
Pertama parameter sql
yang merupakan query MYSQL dalam bentuk string.
…dan yang kedua adalah fungsi yang akan dieksekusi saat query dilakukan.
db.query(sql, function (err, result) {
if (err) throw err;
console.log("Database created");
});
Fungsi ini juga memiliki dua parameter: err
dan result
.
Parameter err
akan menjadi objek yang menyimpan err
kalau gagal melakukan query.
Sedangkan result
akan menjadi objek yang menyimpan data hasil query.
Membuat Tabel MySQL dengan Nodejs
Kita sudah tahu cara mengeksekusi query sql di Nodejs. Selanjutnya, kita akan pelajar cara membuat tabel.
Caranya sama seperti membuat database. Perbedaanya pada query yang digunakan.
Namun, sebelum itu…
Silahkan ubah isi db_config.js
menjadi seperti ini:
var mysql = require('mysql');
var db = mysql.createConnection({
host: "localhost",
user: "dian",
password: "kopi",
database: "petani_kopi"
});
module.exports = db;
Pada kode tersebut, kita hanya menambahkan nama database yang sudah dibuat.
Setelah itu, buat file baru bernama create_table.js
dengan isi sebagai berikut:
var db = require("./db_config");
db.connect(function(err) {
if (err) throw err;
let sql = `CREATE TABLE customers
(
id int NOT NULL AUTO_INCREMENT,
name VARCHAR(255),
address VARCHAR(255),
PRIMARY KEY (id)
)`;
db.query(sql, function (err, result) {
if (err) throw err;
console.log("Table created");
});
});
Perhatikan kode di atas…
Kita menggunakan petik ini ` untuk menulis query yang lebih dari satu baris.
Tanda petik ini biasanya berada di atas tombol Tab di keyboard.
Ini adalah teknik penulisan string yang lebih dari satu baris di Javascript.
let sql = `CREATE TABLE customers
(
id int NOT NULL AUTO_INCREMENT,
name VARCHAR(255),
address VARCHAR(255),
PRIMARY KEY (id)
)`;
Pada query tersebut, kita akan membuat tabel dengan nama customers
dengan kolom id
, name
, dan address
.
Oke, sekarang coba kita eksekusi:
…dan coba cek lagi di Phpmyadmin.
Insert Data ke MySQL dengan Nodejs
Kita sudah berhasil membuat tabel, barikutnya kita akan coba isi data ke sana.
Caranya sama…
Cuma yang membedakan adalah query-nya.
Mari kita coba.
Buatlah file baru bernama insert.js
, kemudian isi dengan kode berikut:
var db = require("./db_config");
db.connect(function(err) {
if (err) throw err;
let sql = `INSERT INTO customers (name, address)
VALUES ('Starbucks', 'Lombok Epicentrum Mall')`;
db.query(sql, function (err, result) {
if (err) throw err;
console.log("1 record inserted");
});
});
Setelah itu, coba eksekusi.
…dan sekarang coba cek lagi Phpmyadmin.
Yay, data pertama berhasil kita buat.
Lalu bagaimana kalau ada banyak data yang ingin kita tambahakan?
Ini bisa dilakukan dengan memberikan parameter [values]
pada eksekusi query.
db.query(sql, [values], function (err, result){ ... });
Untuk lebih jelasnya, mari kita coba.
Buatlah file baru bernama insert_multi.js
, kemudian isi dengan kode berikut:
var db = require("./db_config");
db.connect(function(err) {
if (err) throw err;
let sql = "INSERT INTO customers (name, address) VALUES ?";
var values = [
['JS Coffee', 'Highway 71'],
['3AM Coffee', 'Lowstreet 4'],
['Apple Cafe', 'Apple st 652'],
['Laravel Coffee', 'Mountain 21'],
['Nodejs Cafe', 'Valley 345'],
['PHP Hotel', 'Ocean blvd 2'],
['One Cafe', 'Green Grass 1'],
['Richard bar', 'Sky st 331'],
['Susan Cafe', 'One way 98'],
['Vicky Club', 'Yellow Garden 2'],
['Ben Resto', 'Park Lane 38'],
['William Company', 'Central st 954'],
['Chuck Food', 'Main Road 989'],
['Viola Coffee', 'Sideway 1633']
];
db.query(sql, [values], function (err, result) {
if (err) throw err;
console.log("Number of records inserted: " + result.affectedRows);
});
});
Perhatikan pada kode di atas…
Kita menggunakan tanda tanya dalam query MySQL-nya. Tanda tanya ini akan bertugas sebagai placeholder untuk data.
Nanti, tanda tanya tersebut akan mengambil nilai dari variabel values
yang akan kita berikan sebagai parameter dalam pengeksekusian query.
Lalu di dalam fungsi callback untuk query, kita menggunakan objek result
untuk mengetahui berapa jumlah baris atau data yang telah ditambahkan.
console.log("Number of records inserted: " + result.affectedRows);
Sekarang coba eksekusi program tersebut.
…dan coba lihat lagi data di Phpmyadmin.
Membaca Data MySQL di Nodejs
Berikutnya kita akan mencoba mebaca data dari MySQL dan menampilkannya di dalam program.
Caranya sama…
Perbedaanya pada query saja.
Silahkan buat file baru bernama read.js
, kemudian isi dengan kode berikut:
var db = require("./db_config");
db.connect(function(err) {
if (err) throw err;
let sql = "SELECT * FROM customers";
db.query(sql, function (err, result) {
if (err) throw err;
console.log(result);
});
});
Setelah itu, coba eksekusi:
Dari hasil output ini, kita dapat mengetahui kalau variabel result
adalah sebuah array yang berisi objek dari tiap baris atau data.
Biar tampilannya semakin bagus, coba ubah kodenya menjadi seperti ini:
var db = require("./db_config");
db.connect(function(err) {
if (err) throw err;
let sql = "SELECT * FROM customers";
db.query(sql, function (err, result) {
if (err) throw err;
// gunakan perulangan untuk menampilkan data
console.log(`ID \t NAME \t\t ADDRESS`);
console.log(`----------------------------------------------------------`);
result.forEach(customer => {
console.log(`${customer.id} \t ${customer.name} \t ${customer.address}`);
});
});
});
Setelah itu, coba eksekusi lagi.
Update Data MySQL dengan Nodejs
Berikutnya kita akan coba mengubah data dengan query UPDATE
. Caranya sama, tinggal kita ubah query-nya saja.
Silahkan buat file baru dengan nama update.js
, kemudian isi dengan kode berikut:
var db = require("./db_config");
db.connect(function(err) {
if (err) throw err;
// kita akan mengubah alamat Starbucks
let sql = `UPDATE customers
SET address='LEM Lantai 1'
WHERE id=1`;
db.query(sql, function (err, result) {
if (err) throw err;
console.log("Number of records inserted: " + result.affectedRows);
});
});
Pada kode sql, kita akan mengubah alamat untuk data yang id-nya sama dengan 1
. Dalam kasus ini data yang ber-id 1
adalah Starbucks.
Mari kita coba eksekusi.
Lihat, alamatnya berubah dari Lombok Epicentrum Mall
menjadi LEM Lantai 1
.
Hapus Data MySQL dengan Nodejs
Hapus data sama seperti update data, yaitu menggunakan query WHERE untuk memilih data yang akan dihapus.
Mari kita coba…
Buatlah file baru bernama delete.js
, kemudian isi dengan kode berikut:
var db = require("./db_config");
db.connect(function(err) {
if (err) throw err;
// kita akan menghapus Starbucks
let sql = `DELETE FROM customers WHERE id=1`;
db.query(sql, function (err, result) {
if (err) throw err;
console.log("Number of records inserted: " + result.affectedRows);
});
});
Lalu coba eksekusi.
Komentar Terbaru