Blogger Jateng

Mengintegrasikan SQL dengan Express.js

Node.js digunakan untuk membangun aplikasi web. js, Express.js: js adalah salah satu kerangka kerja yang paling kuat karena menyediakan kesederhanaan dan sangat mudah disesuaikan. Tetapi jika Anda ingin membangun aplikasi fungsional, Anda sering kali membutuhkan database untuk menyimpan dan mengontrol data Anda. Basis data NoSQL seperti MongoDB sangat populer untuk digunakan, dan meskipun menawarkan kecepatan dan fleksibilitas yang tak tertandingi, hal yang sama pentingnya adalah sistem manajemen basis data relasional (RDBMS): MySQL, PostgreSQL, dan SQLite digunakan secara luas ketika data terstruktur atau kueri yang rumit diperlukan.

Pada artikel ini, kita akan membahas cara mengintegrasikan database SQL dengan Express.js dan menciptakan interaksi yang mulus antara server web Anda dengan database. Kita akan membahas semuanya, mulai dari menyiapkan database hingga membuat kueri SQL dan menangani respons dalam aplikasi Express.js.

sumber: scaler.com

1. Menyiapkan Basis Data SQL

Pertama, Anda harus memiliki basis data SQL pilihan Anda. Dalam tutorial ini, kami akan mendemonstrasikan penggunaan MySQL sebagai contoh, tetapi pendekatan ini juga dapat digunakan pada basis data SQL lain seperti PostgreSQL dan SQLite, dengan sedikit perbedaan.

Untuk memulainya, Anda perlu menyiapkan MySQL atau menggunakan yang sudah tersedia. Ini tersedia untuk diunduh dari situs web resmi MySQL, atau dapat diinstal melalui manajer paket.

Setelah Anda menginstal MySQL, buatlah basis data untuk proyek Anda. Anda dapat melakukan ini dengan masuk ke MySQL dan mengeksekusi:

 CREATE DATABASE myapp;

2. Menginstal Ketergantungan

Dalam proyek Express.js Anda, maka Anda perlu menyiapkan klien MySQL untuk menjalankan pernyataan SQL. MySQL2 adalah pustaka yang paling populer untuk hal ini, dan berfungsi dengan baik dengan query berbasis callback dan promise.

Untuk menginstal paket ini jalankan:

npm install mysql2

3. Membuat Koneksi MySQL

Instal mysql2 lalu buat koneksi: Buat berkas db.js di mana Anda akan mengatur koneksi.

const mysql = require('mysql2');

// Create a connection pool to the MySQL database
const pool = mysql.createPool({
  host: 'localhost',
  user: 'root', // replace with your database username
  password: 'password', // replace with your database password
  database: 'myapp', // replace with your database name
});

// Export the pool for use in other parts of your app
module.exports = pool.promise();

Objek pool ini akan memungkinkan Anda untuk melakukan kueri ke database dengan mudah, dan kami menggunakan pool.promise() untuk mengembalikan janji alih-alih menggunakan callback, yang dapat membantu kode yang lebih bersih dan lebih mudah dipelihara.

4. Kami telah mengekspresikan Kueri SQL js

Anda dapat melanjutkan untuk menulis kueri SQL di Express Anda setelah membuat koneksi. rute js.

Sebagai contoh, berikut ini adalah rute yang sangat sederhana untuk mengambil semua pengguna dari tabel pengguna:

const express = require('express');
const db = require('./db'); // import the database connection
const app = express();
const port = 3000;

app.get('/users', async (req, res) => {
  try {
    // Query the database for all users
    const [rows] = await db.execute('SELECT * FROM users');
    res.json(rows); // Send the result as a JSON response
  } catch (err) {
    console.error(err);
    res.status(500).json({ message: 'Database error' });
  }
});

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

Dalam contoh ini, kita menggunakan db. mengeksekusi kueri dan mengembalikan janji yang menyelesaikan hasilnya. Data yang diambil dari basis data ada dalam variabel baris. Data ini kemudian dikembalikan ke klien sebagai JSON.

5. Penanganan Sisipan dan Pembaruan SQL

Apa pun sisipan dan pembaruan SQL yang Anda miliki, Anda dapat melakukan hal yang sama. Misalnya, untuk menyisipkan pengguna baru ke dalam tabel pengguna, Anda dapat melakukannya seperti ini:

app.post('/users', async (req, res) => {
  const { name, email } = req.body;

  try {
    const result = await db.execute('INSERT INTO users (name, email) VALUES (?, ?)', [name, email]);
    res.status(201).json({ message: 'User created', userId: result[0].insertId });
  } catch (err) {
    console.error(err);
    res.status(500).json({ message: 'Database error' });
  }
});

Contoh ini adalah kueri yang diparameterkan (?) untuk mencegah serangan injeksi SQL. Permintaan. Teks Permintaan terdiri dari data yang ada di dalam badan dan kami meneruskannya sebagai sebuah larik untuk kueri.

6. Penanganan Kesalahan dan Debugging

Cara menangani dan men-debug kesalahan basis data SQL Catat kesalahan Anda dengan cara yang memungkinkan Anda menemukan masalahnya. Baik kesalahan kueri maupun masalah koneksi dapat dicatat. Di Express. js, kesalahan biasanya ditangani di middleware atau di penangan rute seperti yang ditunjukkan pada contoh di atas.

Kesimpulan

Mengintegrasikan basis data SQL dengan Express.js sangat mudah dengan alat yang tepat. Dengan menggunakan mysql2 atau paket serupa, Anda dapat dengan mudah terhubung ke database MySQL dan melakukan operasi CRUD. Baik saat Anda mengambil data, menyisipkan record baru, atau memperbarui record yang sudah ada, kueri SQL cocok dengan struktur penanganan rute Express.js.

Dengan menggabungkan kekuatan database SQL dengan fleksibilitas Express.js, Anda dapat membangun aplikasi berbasis data yang kuat.