Tutorial RESTful API Express dan MongoDB #3: Menampilkan Data dari Database


Tutorial RESTful API Express dan MongoDB #3: Menampilkan Data dari Database

Halo teman-teman semuanya, pada artikel sebelumnya kita telah mempelajari cara menghubungkan Prisma dengan MongoDB menggunakan connection string. Kali ini, kita akan belajar bagaimana menampilkan lists data dari MongoDB di Express menggunakan Prisma.

Langkah 1 - Install Prisma Client

Prisma Client akan memudahkan kita dalam berinteraksi dengan database secara efisien dan intuitif. Silahkan jalankan perintah berikut ini di dalam terminal/CMD dan pastikan berada di dalam project Express.

css
npm install @prisma/client@5.20.0

Langkah 2 - Membuat Post Controller

Sekarang silahkan teman-teman buat folder baru dengan nama controllers dan di dalam folder tersebut silahkan buat file baru dengan nama PostController.js, kemudian masukkan kode berikut ini di dalamnya.

controllers/PostController.js

javascript
//import PrismaClient const { PrismaClient } = require('@prisma/client'); //init prisma client const prisma = new PrismaClient(); //function findPosts const findPosts = async (req, res) => { try { //get all posts from database const posts = await prisma.post.findMany({ select: { id: true, title: true, content: true, createdAt: true, updatedAt: true, }, orderBy: { createdAt: "desc", }, }); //send response res.status(200).send({ success: true, message: "Get All Posts Successfully", data: posts, }); } catch (error) { res.status(500).send({ success: false, message: "Internal server error", }); } }; //export function module.exports = { findPosts, }

Dari penambahan kode di atas, pertama kita import dan inisialisasi Prisma Client.

javascript
//import PrismaClient const { PrismaClient } = require('@prisma/client'); //init prisma client const prisma = new PrismaClient();

Kemudian kita membuat function baru dengan nama findPosts.

csharp
//function findPosts const findPosts = async (req, res) => { //... }

Di dalamnya, kita melakukan get data dari MongoDB menggunakan Prisma. Dan kita urutkan data yang ditampilkan berdasarkan yang terbaru.

yaml
//get all posts from database const posts = await prisma.post.findMany({ select: { id: true, title: true, content: true, createdAt: true, updatedAt: true, }, orderBy: { createdAt: "desc", }, });

Setelah itu, kita return data di atas ke dalam format JSON.

kotlin
//send response res.status(200).send({ success: true, message: "Get All Posts Successfully", data: posts, });

Terakhir, jangan lupa untuk melakukan export function findPosts.

java
//export function module.exports = { findPosts, }

Langkah 3 - Membuat Route API Posts Index

Setelah berhasil membuat controller, maka kita akan lanjutkan membuat route untuk API posts index-nya.

Silahkan teman-teman buat folder baru dengan nama routes dan di dalamnya silahkan buat file baru dengan nama index.js, kemudian masukkan kode berikut ini di dalamnya.

routes/index.js

javascript
//import express const express = require('express') //init express router const router = express.Router(); //import PostController const PostController = require('../controllers/PostController'); //define route for posts router.get('/posts', PostController.findPosts); //export router module.exports = router

Dari penambahan kode di atas, kita melakukan inisialisasi router dari Express.

javascript
//import express const express = require('express') //init express router const router = express.Router();

Kemudian kita import controller PostController.

javascript
//import PostController const PostController = require('../controllers/PostController');

Setelah itu, kita buat route baru dengan method GET dan path /posts, dimana handler-nya kita arahkan ke dalam PostController dengan function findPosts.

csharp
//define route for posts router.get('/posts', PostController.findPosts);

Jangan lupa untuk melakukan export router-nya.

java
//export router module.exports = router

Langkah 4 - Mendaftarkan Route

Agar route di atas bisa digunakan di dalam aplikasi, maka kita akan memanggilnya di dalam main file Express kita. Silahkan teman-teman buka file index.js, kemudian ubah kode-nya menjadi seperti berikut ini.

index.js

javascript
//import express const express = require('express') //import router const router = require('./routes') //init app const app = express() //define port const port = 3000; //route app.get('/', (req, res) => { res.send('Hello World!') }) //define routes app.use('/api', router) //start server app.listen(port, () => { console.log(`Server started on port ${port}`); })

Dari perubahan kode di atas, pertama kita import file routes yang sudah kita buat sebelumnya.

javascript
//import router const router = require('./routes')

Kemudian kita gunakan di dalam Express menggunakan keyword use dan kita berikan basePath /api. Artinya nanti semua URL akan ditambahkan /api di depannya.

php
//define routes app.use('/api', router)

Langkah 5 - Uji Coba Menampilkan Lists Data

Silahkan teman-teman buka aplikasi Postman, kemudian masukkan URL berikut ini http://localhost:3000/api/posts dan untuk method-nya silahkan pilih GET.

Jika sudah, silahkan klik Send dan jika berhasil maka kita akan mendapatkan response JSON yang kurang lebih seperti berikut ini.

json
{ "success": true, "message": "Get All Posts Successfully", "data": [] }

Di atas, kita masih mendapatkan array kosong [] pada response data. Karena kita memang belum memili data apapun saat ini.

Kesimpulan

Pada artikel kali ini, kita semua telah belajar bagaimana cara install Prisma Client dan kemudian belajar menampilkan lists data dari MongoDB menggunakan Prisma di Express.

Pada artikel berikutnya, kita semua akan belajar bagaimana cara melakukan proses insert data ke dalam MongoDB menggunakan Prisma di Express.

Terima Kasih


Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami