MASIGNCLEAN102

Membuat REST API dengan Express JS + MySQL di NodeJS

Membuat REST API dengan Express JS + MySQL di NodeJS - Halo semua, pada artikel kali ini kita akan belajar tutorial membuat REST API dengan menggunakan Express JS dan database MySQL. REST API bisa dibilang simplenya, sebuah server yang akan mengirimkan hasil berupa response JSON.

Pada artikel kali ini kita akan membuat sebuah rest api dari express js dengan menggunakan pattern controller dan route. Sebelum masuk ke tutorialnya, kita perlu menyiapkan design endpoint dari rest api kita. Di kesempatan kali ini, kita akan mencoba membuat sebuah rest api dengan database sekolah dan table siswa. Tentu saja fungsinya adalah CRUD ( Create - Read - Update - Delete ) siswa di database tersebut.

Di tutorial membuat rest api dengan express js ini, kita akan membuat design endpoint seperti berikut

GET /siswa

POST /siswa

PUT /siswa/:id

DELETE /siswa/:id


Yang mana GET merupakan method untuk mendapatkan list collection dari siswa, POST adalah method untuk mengirimkan data / menambah data, PUT adalah method untuk mengupdate data, dan DELETE adalah HTTP method untuk menghapus data.


Ya, sampai sini kita sudah berhasil menyiapkan design endpoint dari aplikasi rest api yang akan kita buat.


Menyiapkan Database

Kita akan membuat rest api dengan database sekolah. Maka kita buat database bernama db_school dan table bernama t_students dengan struktur tabel seperti berikut :


Instalasi Express JS dan Mysql


Setelah kita berhasil menyiapkan design endpointnya, saatnya kita menyiapkan environment dari aplikasi yang akan kita buat.

Pertama, buatlah sebuah folder baru, kalian bisa beri nama siswajs.

Kemudian buka di VSCode atau arahkan terminal ke folder tersebut, kemudian jalankan perintah 

npm init

Kemudian kalian bisa enter-enter saja, sampai terbuat satu file baru bernama package.json

Berisikan seperti ini,

{
  "name": "siswajs",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

 

Sampai sini kalian sudah berhasil menginstal npm di folder kalian.

Selanjutnya mari lanjut menginstall express js dan mysql ke dalam aplikasi nya.

npm install express --save

Untuk menginstall express js,

npm install cors body-parser mysql --save 

Untuk menginstall mysql dan middleware.


Sampai sini kalian sudah berhasil menginstall module node yang kita perlukan di tutorial membuat rest api dengan express js + mysql ini.


Menyiapkan Susunan Folder


Setelah itu, kita perlu menyiapkan beberapa susunan folder seperti config, controller dan route di aplikasi kita.


Buatlah folder-folder di atas dan juga siapkan 1 file bernama index.js. Seperti di bawah ini :



Membuat File Koneksi


Silahkan kalian buat satu file baru bernama connection.js di folder config. File ini berfungsi untuk menampung class connection mysql yang nanti akan kita export ke modul / file js lainnya.

const mysql = require('mysql')

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'db_school'
})

module.exports = connection

 

Sesuaikan konfigurasinya dengan konfig database kalian jika berbeda.

module.exports merupakan baris command pada common js untuk mengexport sebuah variabel di suatu file. Nantinya file ini akan bersifat sebagai modul dan variabel tersebut bisa diimport dari file lain.


Membuat Controller


Siapkan dan buatlah sebuah file baru bernama siswaController.js di folder controller. Nantinya file ini akan bertindak sebagai core transaksi data dari aplikasi kita.

Isilah dengan kode berikut, dan jangan lupa untuk mengimport connection.

const connection = require("../config/connection");

exports.getUsers = async (reqres=> {
  let data = [];
  try {
    let sql = "select * from t_students";

    const exec = connection.query(sql, function (errrowsfields) {
      if (errthrow err;
      res.json({
        status: true,
        data: rows,
        msg: "Hello",
      });
    });
  } catch (error) {
    return res.json({
      status: false,
      msg: error.message,
    });
  }
};


exports.insertUser = async (reqres=> {
  try {
    const body = req.body;
    let name = body.name;
    let age = body.age;
    let gender = body.gender;

    let sql = `insert into t_students(name,age,gender) values (?, ?, ?) `;
    let values = [name, age, gender];
  } catch (error) {
    return res.json({
      status: false,
      msg: error.message,
    });
  }
};

exports.updateUser = async (reqres=> {
  try {
    const id = req.params.id;
    const body = req.body;
    let name = body.name;
    let age = body.age;
    let gender = body.gender;

    let sql = `update t_students set name=?, age=?, gender=? where id=? `;
    let values = [name, age, gender, id];

    connection.query(sql, values, function (errrowsfields) {
      if (errthrow err;

      if (rows.affectedRows > 0) {
        msg = "Successfully Update";
      } else {
        msg = "No entry was updated";
      }

      res.json({
        status: true,
        msg: msg,
      });
    });
  } catch (error) {
    return res.json({
      status: false,
      msg: error.message,
    });
  }
};


exports.deleteUser = async (reqres=> {
  try {
    const id = req.params.id;

    let sql = ` delete from t_students where id = ${id} `;

    connection.query(sql, function (errrowsfields) {
      if (errthrow err;
      let msg = "";
      if (rows.affectedRows > 0) {
        msg = "Successfully Delete";
      } else {
        msg = "No entry was deleted";
      }

      res.json({
        status: true,
        msg: msg,
      });
    });
  } catch (error) {
    res.json({
      status: true,
      msg: error.message,
    });
  }
};

Membuat File Router


Setelah membuat controller dan config nya, kita lanjut membuat router nya atau file yang akan mengarahkan ke fungsi mana sebuah request yang masuk.

Buat file baru bernama siswaRouter.js di folder router,

const express = require('express')

const siswaController = require('../controller/siswaController')

const router = express.Router()

router.get('/', siswaController.getUsers)
router.post('/', siswaController.insertUser)
router.put('/:id', siswaController.updateUser)
router.delete('/:id', siswaController.deleteUser)

module.exports = router


Menyiapkan File Core Index.js


Index.js merupakan file core yang bertindak sebagai file paling depan di aplikasi kita.

const express = require('express')
const cors = require('cors')
const siswaRoute = require('./route/siswaRouter')

const app = express()
const port = 3000

// middleware 
app.use(cors());
app.use(express.json());
app.use('/siswa'siswaRoute)

app.listen(port, ()=>{
  console.log(`Listening on port ${port}`);
})


Sampai sini kita sudah berhasil membuat rest api express js dan mysqlnya, lanjut kita akan mencoba nya.

Jalankan aplikasi kita dengan memasukkan perintah

node index.js
di terminal


Pengujian Postman

Tidak afdol jika kita tidak melakukan pengujian terhadap rest api yang kita buat barusan. Buka POSTMAN kalian untuk melakukan pengujian rest api kita.

Method GET / Ambil Data




Method POST / Tambah Data





Method PUT / Update Data




Method DELETE / Hapus Data





Yaaaa, selamat sampai sini kita sudah berhasil Membuat REST API dengan Express JS + MySQL di Node di tahun 2021. Semoga tutorial kali ini bermanfaat untuk kita semua. Senang bisa membantu, Terima kasih sampai jumpa di artikel selanjutnya :)
Share This :
Funtechsy