Cara menggunakan api nodejs express
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. Show 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 DatabaseKita 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 MysqlSetelah 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
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.
Untuk menginstall express js,
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 FolderSetelah 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 KoneksiSilahkan 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 ControllerSiapkan 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 RouterSetelah 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.jsIndex.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
di terminal Pengujian PostmanTidak 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 DataMethod POST / Tambah DataMethod PUT / Update DataMethod DELETE / Hapus DataYaaaa, 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 :) |