Cara menggunakan crud express js mysql

#Nodejs #Javascript #MySQL

Pada tutorial sebelumnya, kita sudah membuat berbagai macam program Nodejs seperti:

Table of Contents

  • Membuat Project Nodejs
  • Install Modul MySQL
  • Menghubungkan Nodejs dengan MySQL
  • Membuat Database dengan Nodejs
  • Membuat Tabel MySQL dengan Nodejs
  • Insert Data ke MySQL dengan Nodejs
  • Membaca Data MySQL di Nodejs
  • Update Data MySQL dengan Nodejs
  • Hapus Data MySQL dengan Nodejs
  • Apa Selanjutnnya?

  • Membuat Webserver;
  • Membuat Webserver untuk file statis;
  • Membuat Webserver untuk upload file;
  • dll.

Berikutnya kita akan coba belajar membuat program Nodejs dengan database.

Ini penting dipelajari, karena kita tidak hanya akan menyimpan data di dalam variabel dan file saja.

Kita juga akan menyimpan data di database, agar nanti bisa membuat web yang dinamis.

Nodejs biasanya dipasangkan dengan database Mongodb. Namun pada tutorial ini, kita akan menggunakan MySQL.

Bagaimana caranya?

Mari kita pelajari.

Membuat Project Nodejs

Buatlah direktori baru bernama 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:

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.

Baiklah, silahkan buat file baru bernama create_db.js, kemudian isi dengan kode berikut:

var db = require["./db_config"];

const 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:

const mysql = require['mysql'];

const db = mysql.createConnection[{
    host: "localhost",
    user: "root",
    password: ""
}];

db.connect[function[error]{
    if[error]{
        console.error[error];
    } else {
        console.info["Connected to Database"];
    }
}];

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 yang dibuat adalah petani_kopi, karena kita memberikan nama itu di dalam query SQL.

var db = require["./db_config"];

const sql = "CREATE DATABASE petani_kopi";
db.query[sql, function [err, result] {
    if [err] throw err;
    console.log["Database created"];
}];

Fungsi db.query[] memiliki dua parameter yang harus diberikan.

Pertama parameter sql yang merupakan query MYSQL dalam bentuk string.

…dan yang kedua adalah fungsi callback yang akan dieksekusi setelah query dilakukan.

db.query[sql, function [err, result] {
    if [err] throw err;
    console.log["Database created"];
}];

Fungsi callback 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:

const mysql = require['mysql'];

const db = mysql.createConnection[{
    host: "localhost",
    user: "admin",
    password: "admin",
    database: "petani_kopi"
}];

db.connect[function[error]{
    if[error]{
        console.error[error];
    } else {
        console.info["Connected to Database"];
    }
}];

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:

const db = require["./db_config"];

const 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.

const 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:

const db = require["./db_config"];

const 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:

const db = require["./db_config"];

const sql = "INSERT INTO customers [name, address] VALUES ?";
const 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:

const db = require["./db_config"];

const 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:

const db = require["./db_config"];

const 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:

const db = require["./db_config"];

// kita akan mengubah alamat Starbucks
const 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:

const db = require["./db_config"];

// kita akan menghapus Starbucks
const 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.

Apa Selanjutnnya?

Selamat…kamu sudah belajar menggunakan database MySQL di Nodejs.

Intinya, kita harus paham query MySQL-nya. Karena tanpa ini, kita tidak akan bisa menggunakan MySQL di Nodejs.

Kita sudah coba query untuk membuat database, membuat tabel, insert data, baca data, update, dan delete.

Ini merupakan query dasar yang harus dipahami.

Untuk query yang lainnya, silahkan coba sendiri. Karena masih banyak lagi query tingkat lanjut yang perlu dicoba, seperti JOIN, ORDER BY, LIMIT, dll.

Selamat belajar…

Bài mới nhất

Chủ Đề