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 (req, res) => {
let data = [];
try {
let sql = "select * from t_students";
const exec = connection.query(sql, function (err, rows, fields) {
if (err) throw err;
res.json({
status: true,
data: rows,
msg: "Hello",
});
});
} catch (error) {
return res.json({
status: false,
msg: error.message,
});
}
};
exports.insertUser = async (req, res) => {
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 (req, res) => {
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 (err, rows, fields) {
if (err) throw 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 (req, res) => {
try {
const id = req.params.id;
let sql = ` delete from t_students where id = ${id} `;
connection.query(sql, function (err, rows, fields) {
if (err) throw 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 :)
comment 1 komentar
more_vertThey have a large and fascinating game choice with wonderful streaming high quality. This unbiased comparison web site helps shoppers choose one of the best available playing products matching their wants. We supply top quality promoting services by that includes only established brands of licensed operators in our critiques. We receive fee for promoting the brands listed on this web page. Please observe that though we endeavor to provide you with up-to-date data, we don't 먹튀사이트 먹튀프렌즈 examine all operators on the market.
7 November 2022 pukul 06.40