Membangun aplikasi modern yang menghadirkan layanan berbasis data memerlukan fondasi yang kuat. Dalam artikel ini, kita akan menjelaskan langkah-langkah mendetail tentang cara membuat API dengan Express dan MongoDB.
Dengan mengikuti panduan ini, Anda akan memahami bagaimana mengintegrasikan teknologi server sisi dengan basis data NoSQL yang kuat, membuka peluang untuk mengembangkan aplikasi yang tangguh dan responsif.
Inisialisasi Proyek
Pertama, buat direktori proyek dan inisialisasi proyek. Buka terminal Anda dan jalankan perintah berikut:
mkdir express-mongodb cd express-mongodb npm init
Ikuti instruksi yang diberikan untuk mengisi informasi proyek. Setelah selesai, akan ada sebuah file package.json
di direktori proyek Anda.
Instalasi Modul yang Dibutuhkan
Instal modul-modul yang dibutuhkan untuk membangun API dengan Node.js dan MongoDB, seperti Express.js dan Mongoose (library ODM untuk MongoDB). Jalankan perintah berikut:
npm install express mongoose
Buat Server Express
Buat berkas JavaScript (misalnya server.js
) yang akan menjadi server Express Anda. Kemudian, buat server Express dengan kode berikut:
const express = require('express'); const mongoose = require('mongoose'); const app = express(); const port = process.env.PORT || 3000; // Koneksi ke database MongoDB mongoose.connect('mongodb://localhost/nama_database', { useNewUrlParser: true, useUnifiedTopology: true }); app.listen(port, () => { console.log(`Server berjalan di port ${port}`); });
Membuat Model MongoDB
Buat model MongoDB untuk koleksi yang akan Anda gunakan. Contoh:
const mongoose = require('mongoose'); const schema = new mongoose.Schema({ field1: String, field2: Number, // Tambahkan bidang lain sesuai kebutuhan }); const Model = mongoose.model('NamaModel', schema); module.exports = Model;
Buat Routing API
Tambahkan routing API ke berkas server Anda. Contoh:
const express = require('express'); const router = express.Router(); const Model = require('./model'); // Ganti dengan path yang sesuai // Mendapatkan semua data router.get('/data', async (req, res) => { try { const data = await Model.find(); res.json(data); } catch (err) { res.status(500).json({ error: err.message }); } }); // Menambahkan data baru router.post('/data', async (req, res) => { try { const newData = new Model(req.body); const savedData = await newData.save(); res.json(savedData); } catch (err) { res.status(500).json({ error: err.message }); } }); // Mendapatkan satu data berdasarkan ID router.get('/data/:id', async (req, res) => { try { const data = await Model.findById(req.params.id); if (!data) { return res.status(404).json({ message: 'Data tidak ditemukan' }); } res.json(data); } catch (err) { res.status(500).json({ error: err.message }); } }); // Mengubah data berdasarkan ID router.put('/data/:id', async (req, res) => { try { const updatedData = await Model.findByIdAndUpdate(req.params.id, req.body, { new: true }); if (!updatedData) { return res.status(404).json({ message: 'Data tidak ditemukan' }); } res.json(updatedData); } catch (err) { res.status(500).json({ error: err.message }); } }); // Menghapus data berdasarkan ID router.delete('/data/:id', async (req, res) => { try { const deletedData = await Model.findByIdAndRemove(req.params.id); if (!deletedData) { return res.status(404).json({ message: 'Data tidak ditemukan' }); } res.json(deletedData); } catch (err) { res.status(500).json({ error: err.message }); } }); module.exports = router;
Dengan menambahkan routing ini, Anda memiliki operasi CRUD lengkap (Create, Read, Update, Delete) untuk koleksi data Anda. Anda dapat mengaksesnya dengan mengirimkan permintaan ke endpoint seperti berikut:
GET /data
: Untuk mendapatkan semua data.GET /data/:id
: Untuk mendapatkan satu data berdasarkan ID.POST /data
: Untuk menambahkan data baru.PUT /data/:id
: Untuk mengubah data berdasarkan ID.DELETE /data/:id
: Untuk menghapus data berdasarkan ID.
Menggunakan Middleware dan Routing API
Tambahkan middleware dan routing API ke server Express Anda:
const express = require('express'); const mongoose = require('mongoose'); const bodyParser = require('body-parser'); const app = express(); const port = process.env.PORT || 3000; mongoose.connect('mongodb://localhost/nama_database', { useNewUrlParser: true, useUnifiedTopology: true }); app.use(bodyParser.json()); app.use('/api', require('./router')); // Ganti dengan path yang sesuai app.listen(port, () => { console.log(`Server berjalan di port ${port}`); });
Menjalankan Server
Jalankan server Anda dengan menjalankan perintah:
node server.js
Selamat, Anda sekarang memiliki dasar-dasar untuk membuat API dengan Node.js dan MongoDB. Anda dapat menambahkan routing tambahan, middleware, validasi, dan banyak fitur lainnya sesuai kebutuhan proyek Anda. Juga, pastikan Anda menggantikan nama_database
, NamaModel
, dan bidang lain dengan nilai sesuai proyek Anda.