Membangun API dengan Node.js Express Part 1: Membangun Koneksi dengan Database

1280px-Node.js_logo.svg_

Pada rangkaian tutorial ini, kita akan membangun aplikasi yang akan digunakan sebagai back-end dari suatu sistem. Di bagian ini, kita akan membuat koneksi dengan database terlebih dahulu. DBMS (Database Management System) yang digunakan pada tutorial ini adalah MySQL.

Pertama-tama mari kita initiate project kita terlebih dahulu. Kita akan menggunakan NPM atau node packet manager yang terinstall bersama node.js. Jika belum terinstall bisa kita download di link https://nodejs.org/en/download/. Untuk menginitiate project masukan perintah berikut

// buat folder
$ mkdir node-express-api/
$ cd node-express-api/

node run ./server.js

// inisiasi Node.js App
npm init

name: (node-express-api) 
version: (1.0.0) 
description: Node.js Demo for JWT Authentication
entry point: (index.js) server.js
test command: 
git repository: 
keywords: 
author: sekolahsiber
license: (ISC)
Is this ok? (yes) yes		

Setelah itu mari kita install package yang dibutuhkan. Saat ini yaitu express, sequelize, dan mysql2

npm install express sequelize mysql2 --save		

Sambil menunggu, kita bisa mulai menulis kode untuk aplikasi kita. Mari buat file app/config/db.config.js dengan isi sebagai berikut

module.exports = {
  HOST: "localhost",
  USER: "root",
  PASSWORD: "",
  DB: "db_nodeapi",
  dialect: "mysql",
  pool: {
    max: 5,
    min: 0,
    acquire: 30000,
    idle: 10000
  }
};

Disini kita membuat file konfigurasi koneksi database yang menghubungkan dengan database “db_nodeapi” di mysql service yang berjalan pada url http://localhost, dengan username “root” dan password “”. Nilai ini dapat disesuaikan dengan konfigurasi database yang kita gunakan. Jika teman-teman belum memiliki service mysql, dapat menggunakan XAMPP yang bisa diunduh di https://www.apachefriends.org/download.html.

Lalu mari buat file server.js dengan isi sebagai berikut

// disini kita mengimport modul express
const express = require("express");
// lalu kita inisialisasi aplikasi kita
const app = express();
// disini kita membuat aplikasi akan memparsing data yang masuk dan keluar
// dalam format json
app.use(express.json());
// memparsing juga data yang masuk dalam bentuk x-www-form-urlencoded,
// nanti digunakan untuk mengupload file
app.use(express.urlencoded({ extended: true }));
// kita dapat mengakses aplikasi dengan rute yang dispesifikasikan berikut
app.get("/", (req, res) => {
  res.json({ message: "App is running" });
});
// mengimport konfigurasi dari file konfigurasi yang tadi kita buat
const config = require("./app/config/db.config.js");
// disini kita mengimport modul sequelize dan menginisialisasi koneksi
// menggunakan konfigurasi sebelumnya
const Sequelize = require("sequelize");
const sequelize = new Sequelize(
  config.DB,
  config.USER,
  config.PASSWORD,
  {
    host: config.HOST,
    dialect: config.dialect,
    operatorsAliases: false,
    pool: {
      max: config.pool.max,
      min: config.pool.min,
      acquire: config.pool.acquire,
      idle: config.pool.idle
    }
  }
);
// disini kita melakukan sinkronisasi. Dengan force: true, semua table
// di database akan didrop dan semua model yang saat ini ada di kode 
// akan dibuatkan tablenya
db.sequelize.sync({force: true}).then(() => {
  console.log('Drop and Resync Db');
  initial();
});
// disini kita mensetting aplikasi untuk berjalan di port sesuai file
// .env atau jika tidak ada di 8080
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}.`);
});
// ini adalah fungsi yang dipanggi setelah proses sinkronisasi
function initial() {
}

Aplikasi dapat dijalankan dengan memasukan command ini console

node run ./server.js

Setelah ini kita akan belajar untuk memasukkan struktur model, controller dan route dalam aplikasi

Sumber:

Share postingan ini:

Leave a Reply

Your email address will not be published. Required fields are marked *