Blogger Jateng

Bekerja dengan Basis Data di Express.js

Express.js adalah sebuah gnome dengan konsep yang sangat sedikit untuk kerangka kerja aplikasi web untuk kerangka kerja Node.js untuk membuat aplikasi web yang kuat. Fleksibilitas untuk menyambungkan banyak database dengan mudah adalah salah satu kekuatannya yang paling menonjol. Baik Anda berurusan dengan database relasional seperti MySQL dan PostgreSQL atau database NoSQL seperti MongoDB, Express.js membuatnya lancar dan efisien untuk bekerja dengan database Anda. Artikel ini akan menunjukkan cara menggunakan Express untuk bekerja dengan database. js adalah panduan untuk semua hal tentang vue.

Menyiapkan Express.js dengan Database

Tetapi sebelum Anda dapat menghubungkan db Anda ke aplikasi Express. js. Semua ketergantungan yang diperlukan telah terinstal. Jadi, pertama-tama mari kita siapkan proyek Express.js sederhana:

1. Inisialisasi Proyek Node.js:

mkdir express-database-app
cd express-database-app
npm init -y

2. Instal Express.js:

npm install express

3. Pilih Database dan Instal Ketergantungan: Anda akan membutuhkan pustaka klien tertentu tergantung pada basis data yang Anda pilih. Sebagai contoh:
  • Untuk MongoDB: npm i mongoose
  • Untuk MySQL: npm install mysql2
  • Menggunakan PostgreSQLnpm install pg
sumber: educba.com

Menghubungkan ke Basis Data

1. Menggunakan MongoDB dengan Mongoose

MongoDB memberi Anda Mongoose, sebuah pustaka ODM (Pemodelan Data Objek) untuk MongoDB. Library ini menyediakan solusi berbasis skema untuk memudahkan Anda bekerja dengan MongoDB. Inilah cara Anda dapat terhubung:

const express = require('express');
const mongoose = require('mongoose');

const app = express();
const PORT = 3000;

// MongoDB Connection
mongoose.connect('mongodb://localhost:27017/expressdb', { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => console.log('Connected to MongoDB'))
  .catch((err) => console.error('Error connecting to MongoDB:', err));

// Define a Schema
const UserSchema = new mongoose.Schema({
  name: String,
  email: String,
});

// Create a Model
const User = mongoose.model('User', UserSchema);

// Route to Create a User
app.post('/users', express.json(), async (req, res) => {
  const user = new User(req.body);
  try {
    await user.save();
    res.status(201).send(user);
  } catch (err) {
    res.status(400).send(err);
  }
});

app.listen(PORT, () => {
  console.log(`Server is running on http://localhost:${PORT}`);
});

2. Menggunakan MySQL dengan MySQL2

mysql2 adalah driver yang kaya fitur dan banyak digunakan untuk MySQL. Cara Menghubungkan MySQL ke aplikasi Express js Anda:

const express = require('express');
const mysql = require('mysql2');

const app = express();
const PORT = 3000;

// MySQL Connection
const db = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: '',
  database: 'expressdb',
});

db.connect((err) => {
  if (err) {
    console.error('Error connecting to MySQL:', err);
    return;
  }
  console.log('Connected to MySQL');
});

// Route to Fetch Users
app.get('/users', (req, res) => {
  db.query('SELECT * FROM users', (err, results) => {
    if (err) {
      return res.status(500).send(err);
    }
    res.json(results);
  });
});

app.listen(PORT, () => {
  console.log(`Server is running on http://localhost:${PORT}`);
});

3. Menggunakan PostgreSQL dengan pg

Dalam kasus PostgreSQL, pustaka pg digunakan. Berikut ini sebuah contoh:

const express = require('express');
const { Pool } = require('pg');

const app = express();
const PORT = 3000;

// PostgreSQL Connection
const pool = new Pool({
  user: 'postgres',
  host: 'localhost',
  database: 'expressdb',
  password: '',
  port: 5432,
});

// Route to Fetch Data
app.get('/users', async (req, res) => {
  try {
    const result = await pool.query('SELECT * FROM users');
    res.json(result.rows);
  } catch (err) {
    res.status(500).send(err);
  }
});

app.listen(PORT, () => {
  console.log(`Server is running on http://localhost:${PORT}`);
});

Praktik Optimal untuk Manajemen Basis Data di Express js

1. Dengan variabel lingkungan: env file untuk mencegah pemaparan. Muat dengan menggunakan paket dotenv:

npm install dotenv

require('dotenv').config();
const dbUser = process.env.DB_USER;

2. Menangani Kesalahan: Gunakan middleware penanganan kesalahan untuk mencegat kesalahan terkait basis data dan mencegah aplikasi mogok.

3. Menerapkan penyatuan koneksi: Untuk meningkatkan performa dan menghindari beban yang terlalu berat pada basis data, jika Anda menggunakan basis data relasional, pastikan untuk menyambungkannya melalui kumpulan koneksi.

4. Memvalidasi Input: Selalu memvalidasi input pengguna untuk mencegah injeksi SQL dan kerentanan lainnya.

5. Gunakan ORM/ODM: Pustaka seperti Mongoose (untuk MongoDB) atau Sequelize (untuk database relasional) dapat menyederhanakan dan standar operasi database.

Kesimpulan

Menghubungkan database dengan Express js membuka dunia yang sangat potensial untuk aplikasi dinamis. Mempelajari cara mengatur dan berkomunikasi dengan database populer (misalnya: MongoDB, MySQL, PostgreSQL) memungkinkan para pengembang untuk membangun backend yang mudah dipelihara, efisien, dan aman. Selalu ikuti praktik terbaik untuk validasi input, manajemen kredensial yang tepat, dan penanganan kesalahan untuk membangun arsitektur aplikasi yang aman.