Cara menggunakan mysql express

Sebelumnya, kita sudah bisa membuat web server yang dapat melakukan manipulasi data, dan menerima data dari body. Namun data tersebut hanya disimpan ke variable. Masalahnya, apabila server direstart, maka data yang disimpan pada variable tersebut akan hilang, karena variable disimpan pada memory sementara (RAM).

2. Solusi

Agar data yang disimpan permanen, dan tidak hilang saat server direstart, maka data tersebut harus disimpan ke dalam suatu file. File disini bisa berupa file text, atau pada kasus ini lebih cocok menggunakan database seperti MySQL.

3. Mengkoneksikan Express ke Database MySQL

3.1 Pembuatan Database dan Tabel MySQL

Sebelum memulai, pastikan sudah terdapat sebuah database dan tabel untuk menampung data dari server kita. Jika belum, ketikkan kode berikut pada terminal MySQL ataupun jendela query phpMyAdmin.

  CREATE DATABASE `expressmysql`;
  USE `expressmysql`;

  CREATE TABLE `contacts` (
    `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `name` varchar(80),
    `phone` varchar(15)
  );

  INSERT INTO `contacts`(`name`,`phone`) VALUES
  ("Rhoma", "081356789876"),
  ("Ani", "081356789877");

Sebuah database baru dengan tabel

npm install express mysql
5 akan terbuat dan terisi oleh 2 data.

3.2 Install Package Express dan MySQL pada Project

Setelah membuat database, kembali ke project dan install package

npm install express mysql
6 dan
npm install express mysql
7, agar server bisa terkoneksi dengan database MySQL yang sudah kita buat. Untuk menginstall package ini, cukup buka terminal pada lokasi project dan ketikkan

npm install express mysql

Perhatikan pada command terminal diatas, kita bisa langsung menginstall beberapa package dari npm. Dengan cara memisahkan nama package dengan spasi

npm install package1 package2 package3 . . .

Lalu kita cek pada file

npm install express mysql
8 untuk melihat package yang telah kita install. Apabila proses install package sukses, bagian
npm install express mysql
9 dari
npm install express mysql
8 akan terlihat seperti ini

"dependencies": {
    "express": "^4.17.1",
    "mysql": "^2.18.1"
  }

3.2 Koneksi dari Express ke MySQL

Package sudah kita install, sekarang saatnya menyambungkan aplikasi Express kita dengan database MySQL.

3.2.1 Import Package MySQL

Pertama kita import package

npm install express mysql
7 agar bisa digunakan

const mysql = require("mysql");

3.2.2 Membuat Koneksi

Kedua, buat sebuah variabel yang akan menampung lokasi koneksi database kita dengan fungsi

npm install package1 package2 package3 . . .
2

// membuat variable con untuk menampung data koneksi ke MySQL
const con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "",
  database: "expressmysql"
});

Lalu sambungkan koneksi tersebut dengan menggunakan fungsi

npm install package1 package2 package3 . . .
3

// menyambungkan variable con dengan MySQL
con.connect(function(err) {
  if (err) throw err;
  console.log("-> Database Connected");
});

Dan bisa langsung kita coba dengan menjalankan aplikasi Express kita

-> Server running on :3000
-> Database Connected

3.3 Menjalankan Query MySQL pada Express

Koneksi sudah siap, kita lanjut untuk menjalankan query pada Express. Query MySQL dapat dijalankan dengan menggunakan fungsi

npm install package1 package2 package3 . . .
4

// Eksekusi query SELECT degan koneksi dari variable con
con.query("SELECT * FROM contacts", function(err, rows) {
  if (err) throw err;
  console.log(rows);
});

Karena kita juga menggunakan

npm install package1 package2 package3 . . .
5, hasil dari query bisa kita lihat pada terminal

-> Server running on :3000
-> Database Connected
[ RowDataPacket { id: 1, name: 'Rhoma', phone: '081356789876' },
  RowDataPacket { id: 2, name: 'Ani', phone: '081356789877' } ]

4. Aplikasi CRUD dengan Express

Setelah mengetahui cara mengkoneksikan database diatas, kita coba untuk membuat sebuah webservice yang bisa melakukan operasi Create, Read, Update, Delete. Sebenarnya kita sudah mengimplementasikan proses Read Data pada contoh diatas. Tetapi, kita belum membuat endpoint untuk mengakses query tersebut. Sehingga perlu dibuat sebuah endpoint agar bisa kita akses dengan REST Client

4.1 Read Data

Saat client mengakses URL

npm install package1 package2 package3 . . .
6 dengan method
npm install package1 package2 package3 . . .
7, maka aplikasi akan menjalankan query untuk mengambil semua data
npm install package1 package2 package3 . . .
8 dari database.

npm install express mysql
0

4.2 Create Data

Saat client mengakses URL

npm install package1 package2 package3 . . .
6 dengan method
"dependencies": {
    "express": "^4.17.1",
    "mysql": "^2.18.1"
  }
0, maka aplikasi akan mengambil data dari
"dependencies": {
    "express": "^4.17.1",
    "mysql": "^2.18.1"
  }
1 untuk dimasukkan ke dalam tabel
npm install package1 package2 package3 . . .
8 pada database.

npm install express mysql
1

4.3 Update Data

Saat client mengakses URL

"dependencies": {
    "express": "^4.17.1",
    "mysql": "^2.18.1"
  }
3 dengan method
"dependencies": {
    "express": "^4.17.1",
    "mysql": "^2.18.1"
  }
4, maka aplikasi akan mengambil data dari
"dependencies": {
    "express": "^4.17.1",
    "mysql": "^2.18.1"
  }
1 untuk memperbarui data dari tabel
npm install package1 package2 package3 . . .
8 pada database berdasarkan parameter
"dependencies": {
    "express": "^4.17.1",
    "mysql": "^2.18.1"
  }
7 yang diinputkan. Contohnya kita ingin memperbarui data dengan
"dependencies": {
    "express": "^4.17.1",
    "mysql": "^2.18.1"
  }
8 = 1 pada tabel, maka URL akan menjadi
"dependencies": {
    "express": "^4.17.1",
    "mysql": "^2.18.1"
  }
9.

npm install express mysql
2

4.4 Delete Data

Sama seperti diatas, client mengakses URL

"dependencies": {
    "express": "^4.17.1",
    "mysql": "^2.18.1"
  }
3 dengan method
const mysql = require("mysql");
1 akan menghapus data pada tabel
npm install package1 package2 package3 . . .
8 sesuai dengan parameter
"dependencies": {
    "express": "^4.17.1",
    "mysql": "^2.18.1"
  }
7 yang diinputkan. Contoh kita akan menghapus data dengan
"dependencies": {
    "express": "^4.17.1",
    "mysql": "^2.18.1"
  }
8 =
const mysql = require("mysql");
5, maka URL akan menjadi
"dependencies": {
    "express": "^4.17.1",
    "mysql": "^2.18.1"
  }
9.

Apa kelebihan Node JS?

Kelebihan Node.js.
Bersifat non-blocking. Sebelum membahas mengenai non-blocking, kita harus mengetahui apa itu blocking. ... .
2. Fast execution. Kode Javascript yang dieksekusi terbilang mempunyai performa yang bagus dan cepat. ... .
3. Single threaded..

Sequelize itu apa?

Apa Itu Sequelize? Sequelize merupakan node.js promise-based ORM (Object Relational Mapping) untuk Postgre, MySQL, MariaDB, SQLite, dan Microsoft SQL Server. Dengan memanfaatkan ORM, Anda dapat membuat aplikasi dengan mudah tanpa menuliskan perintah SQL (Structured Query Language).