Bab 1: Pengenalan NodeJS dan Mesin V8
NodeJS adalah runtime JavaScript yang berjalan di luar browser, memungkinkan pengembang menjalankan JavaScript di server. Inti dari NodeJS adalah mesin V8, yang dikembangkan oleh Google untuk menjalankan JavaScript dengan sangat cepat.
Mesin V8 mengkompilasi JavaScript langsung ke kode mesin, sehingga meningkatkan performa aplikasi. NodeJS menggunakan event-driven, non-blocking I/O model yang membuatnya efisien dan scalable.
Dengan NodeJS, pengembang dapat membangun aplikasi server yang cepat dan dapat menangani banyak koneksi secara bersamaan.
Bab 2: Dasar-dasar Express.js
Express.js adalah framework web minimalis dan fleksibel untuk NodeJS yang menyediakan fitur kuat untuk membangun aplikasi web dan API.
Dengan Express, Anda dapat dengan mudah mengatur routing, middleware, dan menangani request serta response HTTP.
Contoh sederhana membuat server Express:
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Halo dari Express!');
});
app.listen(port, () => {
console.log(`Server berjalan di http://localhost:${port}`);
});
Bab 3: Membuat REST API dengan Express
REST API memungkinkan aplikasi berkomunikasi menggunakan HTTP. Express memudahkan pembuatan endpoint RESTful.
Contoh endpoint REST API sederhana:
const express = require('express');
const app = express();
app.use(express.json());
let users = [{ id: 1, name: 'Budi' }];
app.get('/users', (req, res) => {
res.json(users);
});
app.post('/users', (req, res) => {
const user = { id: Date.now(), name: req.body.name };
users.push(user);
res.status(201).json(user);
});
app.put('/users/:id', (req, res) => {
const id = parseInt(req.params.id);
const user = users.find(u => u.id === id);
if (user) {
user.name = req.body.name;
res.json(user);
} else {
res.status(404).json({ message: 'User tidak ditemukan' });
}
});
app.delete('/users/:id', (req, res) => {
const id = parseInt(req.params.id);
users = users.filter(u => u.id !== id);
res.status(204).end();
});
app.listen(3000);
Dengan cara ini, Anda dapat membuat API yang dapat diakses oleh aplikasi frontend atau mobile.
Bab 4: Pengenalan MongoDB dan Mongoose
MongoDB adalah database NoSQL berbasis dokumen yang sangat populer untuk aplikasi modern. Mongoose adalah ODM (Object Data Modeling) yang memudahkan interaksi dengan MongoDB menggunakan NodeJS.
Contoh skema dan model Mongoose:
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
name: { type: String, required: true },
email: { type: String, required: true, unique: true },
createdAt: { type: Date, default: Date.now }
});
const User = mongoose.model('User', userSchema);
module.exports = User;
Dengan Mongoose, Anda dapat membuat, membaca, memperbarui, dan menghapus data dengan mudah menggunakan model yang sudah didefinisikan.
Bab 5: MERN Stack - Integrasi Frontend dan Backend
MERN adalah singkatan dari MongoDB, Express, React, dan NodeJS. Ini adalah stack populer untuk membangun aplikasi web fullstack modern.
React bertugas sebagai frontend yang interaktif, Express dan NodeJS sebagai backend API, dan MongoDB sebagai database.
Contoh sederhana fetch data dari backend Express ke React:
// React component fetch data
import React, { useEffect, useState } from 'react';
function UserList() {
const [users, setUsers] = useState([]);
useEffect(() => {
fetch('/users')
.then(res => res.json())
.then(data => setUsers(data));
}, []);
return (
<ul>
{users.map(user => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}
export default UserList;
Dengan MERN, Anda dapat membangun aplikasi yang cepat, responsif, dan mudah dikembangkan.
Bab 6: Deployment dan Best Practices
Setelah aplikasi selesai dibuat, tahap selanjutnya adalah deployment agar aplikasi dapat diakses oleh pengguna.
Beberapa platform populer untuk deployment NodeJS adalah Heroku, Vercel, DigitalOcean, dan AWS.
Best practices yang perlu diperhatikan:
-
Gunakan environment variables untuk konfigurasi sensitif.
-
Implementasikan logging dan monitoring.
-
Gunakan proses manager seperti PM2 untuk menjaga aplikasi tetap berjalan.
-
Optimalkan performa dengan caching dan load balancing.
-
Amankan aplikasi dengan validasi input dan penggunaan HTTPS.
Dengan mengikuti best practices, aplikasi Anda akan lebih stabil, aman, dan mudah di-maintain.
Glosarium
-
NodeJS
-
Runtime JavaScript yang berjalan di server menggunakan mesin V8.
-
V8
-
Mesin JavaScript open-source yang dikembangkan oleh Google untuk Chrome dan NodeJS.
-
Express.js
-
Framework web minimalis untuk NodeJS yang memudahkan pembuatan aplikasi dan API.
-
REST API
-
Arsitektur API yang menggunakan HTTP untuk komunikasi antara client dan server.
-
MongoDB
-
Database NoSQL berbasis dokumen yang fleksibel dan scalable.
-
Mongoose
-
ODM untuk MongoDB yang memudahkan pengelolaan data di NodeJS.
-
MERN Stack
-
Stack teknologi yang terdiri dari MongoDB, Express, React, dan NodeJS.
-
Deployment
-
Proses memindahkan aplikasi dari lingkungan pengembangan ke server produksi.