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: