Panduan praktis dan terstruktur mengenai panduan restful api express dan mongodb: menampilkan data dari database (part 3) berstandar enterprise. Pelajari konsep, implementasi kode modern, dan tips arsitektur enterprise siap produksi.
Selamat datang di seri tutorial engineering SiHubung! Pada artikel ini, kita akan membedah secara komprehensif implementasi Panduan Restful Api Express Dan Mongodb: Menampilkan Data Dari Database (Part 3) Berstandar Enterprise dengan standar kode bersih (clean code), performa tinggi, dan arsitektur siap produksi.

Membangun aplikasi web di era modern memerlukan pondasi yang kokoh. Framework modern memberikan fleksibilitas luar biasa bagi developer untuk menghadirkan fitur kompleks secara cepat tanpa mengabaikan aspek keamanan dan keandalan sistem.

Tahapan Implementasi & Walkthrough Kode

Berikut adalah langkah demi langkah teknis yang dapat Anda ikuti langsung pada codebase Anda:

Tahap 1: Penulisan Kode & Konfigurasi

npm install @prisma/client@5.20.0

Tahap 2: Penulisan Kode & Konfigurasi

//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,
}

Tahap 3: Penulisan Kode & Konfigurasi

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

//init prisma client
const prisma = new PrismaClient();

Tahap 4: Penulisan Kode & Konfigurasi

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

	//...
	
}

Tahap 5: Penulisan Kode & Konfigurasi

//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",
    },
});

Tahap 6: Penulisan Kode & Konfigurasi

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

Tahap 7: Penulisan Kode & Konfigurasi

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

Tahap 8: Penulisan Kode & Konfigurasi

//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

Tahap 9: Penulisan Kode & Konfigurasi

//import express
const express = require('express')

//init express router
const router = express.Router();

Tahap 10: Penulisan Kode & Konfigurasi

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

Tahap 11: Penulisan Kode & Konfigurasi

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

Tahap 12: Penulisan Kode & Konfigurasi

//export router
module.exports = router

Tahap 13: Penulisan Kode & Konfigurasi

//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}`);
})

Tahap 14: Penulisan Kode & Konfigurasi

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

Tahap 15: Penulisan Kode & Konfigurasi

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

Tahap 16: Penulisan Kode & Konfigurasi

{
    "success": true,
    "message": "Get All Posts Successfully",
    "data": []
}
💡 Tips Rekayasa Perangkat Lunak (SiHubung Engineering Best Practice)

Selalu gunakan pendekatan deklaratif, validasi input seawal mungkin di boundary layer, dan lakukan logging terstruktur untuk memudahkan observability ketika sistem dijalankan di lingkungan cloud produksi.

Kesimpulan

Dengan mengikuti langkah-langkah terstruktur di atas, implementasi modul Anda akan jauh lebih rapi, aman dari bug umum, serta siap diskalakan ke lingkungan produksi.

Nantikan artikel tutorial praktis lainnya seputar fullstack development, microservices, dan otomasi AI di Blog Engineering SiHubung. Selamat mencoba!