Cara menggunakan crud delete nodejs

By On Thursday, October 13th, 2022 Categories : Tanya Jawab

Cara menggunakan crud delete nodejs – Hi Agan dan sista semua, Makasih banyak dah mau berkunjung ke halaman blog Trend Wisata dot com ini. Malam ini, saya di web Trend Wisata akan sharing Q dan A yang oke banget yang akan menunjukkan tentang Cara menggunakan crud delete nodejs. Silahkan ibu dan bapak menyimaknya berikut ini:

  • REST API (RESTFul API)
  • CRUD
  • Hal Yang
    Diperlukan
  • Pengaturan Database pada PostgreSQL
    • Membuat Database
    • Membuat Tabel
  • Pengaturan Server Express.js
  • Menghubungkan Node.js dengan PostgreSQL
  • Membuat Kelas Response (Opsional)
  • Membuat Fungsi-fungsi Operasi CRUD
    • GET | getStundents()
    • GET | getStudentById()
    • POST | createStudent()
    • PUT | updateStudent()
  • Membuat Endpoint REST API
  • Melakukan Hit pada Endpoint REST API
  • Kesimpulan

API atau Application Program Interface menjadi fasilitas kominukasi antar servis atau software. Dalam pemrograman web, API digunakan untuk mengakses data dan servis yang tersedia.

REST API (RESTFul API)

Representational State Transfer (REST) berisikan
standar-standar untuk sebuah web service. REST API merupakan sebuah gaya arsitektur API yang menggunakan protokol HTTP untuk mengakses dan menggunakan data. Beberapa tipe data yang dimiliki oleh REST API adalah sebagai berikut :

  • GET — Mendapatkan data
  • PUT — Mengubah state atau value dari data atau resource
  • POST — Membuat data atau resource
  • DELETE
    Menghapus data atau resource

yang nantinya dapat digunakan untuk membuat sebuah servis / aplikasi CRUD (Create, Read, Update, Delete).

Ketika membuat sebuah servis / aplikasi, umumnya kita menginginkan beberapa fungsionalitas dasar yang dapat digunakan untuk mengolah data / resource yang dimiliki. Fungsionalitas tersebut adalah untuk membaca, mengubah, menyimpan, dan menghapus data. Hal-hal tersebutlah yang umum disebut dengan CRUD.

CRUD memiliki
kepanjangan Create, Read, Update, Delete, yang sebenarnya merupakan bentuk aplikasi dari tipe data yang dimiliki oleh REST API. Penjabarannya sebagai berikut :

  • CREATE — Untuk membuat data (POST)
  • READ — Untuk mengambil / membaca data yang ada (GET)
  • UPDATE — Untuk mengubah / memperbarui data (PUT)
  • DELETE — Untuk menghapus data
    (DELETE)

Hal Yang Diperlukan

Sebelum dapat mengikuti artikel ini, ada beberapa hal yang perlu terinstal terlebih dahulu, yaitu :

  • Node.js
  • PostgreSQL
  • Aplikasi Postman (untuk hit Endpoint REST API)

Cara penginstalan dapat mengikuti dokumentasi yang terdapat di website masing-masing.

Pengaturan
Database pada PostgreSQL

Pada tahap ini, kita akan melakukan pembuatan database yang akan digunakan oleh aplikasi REST API. Program yang kita gunakan adalah psql. Berikut langkah-langkah yang perlu kita lakukan.

Login dengan perintah :

psql -U postgres

Dengan menggunakan perintah di atas, kita telah masuk ke PostgreSQL sebagai user postgres.

postgres=#

Membuat Database

Untuk membuat
database, kita gunakan perintah :

postgres=# CREATE DATABASE tutorial

Perintah di atas kita gunakan untuk membuat database dengan nama tutorial. Agar dapat menggunakan / terhubung dengan database tutorial, gunakan perintah :

postgres=# \c tutorial

Prompt akan berganti menjadi seperti di bawah ini

tutorial=#

tandanya kita sudah berhasil terhubung ke database tutorial.

Membuat Tabel

Langkah selanjutnya adalah membuat
tabel di database tutorial. Kita akan membuat tabel dengan nama students pada schema public, gunakan perintah :

tutorial=# CREATE TABLE public.students (
    id serial NOT NULL,
    firstname varchar(40) NULL,
    lastname varchar(40) NULL,
    origin varchar(50) NULL,
    CONSTRAINT students_pkey PRIMARY KEY (id)
);

Gunakan perintah \dt untuk mengecek apakah tabel sudah berhasil dibuat.

Untuk mengecek
detail tabelnya, gunakan perintah \d students.

Pengaturan Server Express.js

Langkah pertama yang perlu dilalukan adalah membuat direktory proyek tutorial, kemudian inisialisasi
Node.js, gunakan perintah :

mkdir tutorial
cd tutorial
npm init -y

Perintah npm init -y akan menghasilkan file package.json yang berisi sebagai berikut :

  "name": "tutorial",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": 
    "test": "echo \"Error: no test specified\" && exit 1"
  ,
  "keywords": [],
  "author": "",
  "license": "ISC"

Selanjutnya, kita lakukan instalasi dependensi Express.js dan connector PostgreSQL dengan menggunakan perintah :

npm install express dan pg

Setelah selesai mengeksekusi perintah tersebut, file-file dependensi yang dibutuhkan akan tersimpan di folder node_modules dan package.json akan terupdate pada
bagian dependencies.

  "name": "tutorial",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": 
    "test": "echo \"Error: no test specified\" && exit 1"
  ,
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": 
    "express": "^4.17.1",
    "pg": "^8.7.1"
  

Langkah selanjutnya adalah buat file index.js. File ini yang nantinya menjadi file utama yang harus dieksekusi untuk menjalankan server Node.js. Pada index.js, kita isikan skrip sebagai berikut :

const express = require("express");
const bodyParser = require("body-parser");

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

app.use(bodyParser.json());
app.use(
    bodyParser.urlencoded(
        extended: true
    )
)

Kita harus me-require express dan body-parser (built-in middleware) kemudian variable app dan port.

Selanjutnya kita akan membuat URL
root-path (/) yang mengembalikan sebuah JSON.

app.get("https://kafesentul.com/", (request, response) => 
    response.json(
        info: 'Hello world!'
    );
)

Untuk menjalankan server terserbut, gunakan perintah :

node index.js

Jika skrip berhasil dieksekusi, akan tampil seperti pada gambar di atas.

Jika kita buka http://localhost:3000 dengan menggunakan aplikasi klien (Postman atau web browser), akan muncul sebuah objek JSON seperti pada gambar di bawah.

Struktur proyek
yang akan dibuat akan tampak seperti pada gambar di bawah ini :

Menghubungkan Node.js dengan PostgreSQL

Langkah penting selanjutnya adalah menghubungkan Node.js dengan PostgreSQL. Kita buat sebuah file bernama queries.js (nama tidak harus sama
persis dengan di artikel ini, namun penggunaan pada program harus konsisten) yang nantinya akan kita gunakan untuk men-setup koneksi database serta query-query yang digunakan untuk mengakses dan memanipulasi data.

Hal pertama yang mesti kita lakukan pada bagian ini adalah pelakukan setup Pool connection ke database yang akan digunakan. Hal ini dapat dilakukan dengan menggunakan skrip sebagai berikut :

const Pool = require("pg").Pool;
const pool = new Pool(
    user: 'postgres',
    host: 'localhost',
    database: 'nama_db_kamu',
    password: 'password_kamu',
    port: 5432
);

Membuat Kelas Response
(Opsional)

Hal ini merupakan hal opsional, yang merupakan kebiasaan saya. Tujuan dari membuat kelas Response adalah untuk menjadi standar dari response atau output API yang kita buat. Kelas Response yang biasa saya gunakan adalah sebagai berikut :

class Response 
    constructor(status = false, code = 400, message = "", data = null) 
        this.status = status;
        this.code = code;
        this.message = message;
        this.data = data;
    


module.exports = Response;

Kelas Response ini nantinya akan digunakan pada file queries.js. Pada artikel ini, kita akan selalu menggunakan kelas Response ini untuk format JSON pada response dari API.

const Pool = require("pg").Pool;
const pool = new Pool(
    user: 'postgres',
    host: 'localhost',
    database: 'testing_db',
    password: 'development',
    port: 5432
);
const ResponseClass = require("./model/response") // opsional

Membuat Fungsi-fungsi Operasi CRUD

Pada bagian ini, kita akan membuat 5 fungsi CRUD, yaitu :

  • getStudents() — untuk mengambil semua data siswa
  • getStudentById() — untuk mengambil data seorang siswa, berdasarkan ID
  • createStudent() — untuk membuat data seorang siswa
  • updateStudent() — untuk melakukan update terhadap data seorang siswa berdasarkan ID
  • deleteStudent() — untuk menghapus data
    seorang siswa berdasarkan ID

Kita melakukan deklarasi kelima fungsi tersebut di file queries.js yang nantinya akan diakses oleh index.js.

GET | getStundents()

const getStudents = (request, response) => 
    var responseReturn = new ResponseClass();
    pool.query('SELECT * FROM students ORDER BY id ASC', (error, results) => 
        if (error) 
            throw error
        

        responseReturn.status = true;
        responseReturn.code = 200;
        responseReturn.message = "Success";
        responseReturn.data = results.rows;

        response.status(200).json(responseReturn);
    )

GET | getStudentById()

const getStudentById = (request, response) => 
    var responseReturn = new ResponseClass();
    const id = parseInt(request.params.id)
    pool.query('SELECT * FROM students WHERE id = $1', [id], (error, results) => 
        if (error) 
            throw error
        
        if (results.rowCount == 0) 
            responseReturn.status = true;
            responseReturn.code = 404;
            responseReturn.message = "User not found";
            responseReturn.data = null;
         else 
            responseReturn.status = true;
            responseReturn.code = 200;
            responseReturn.message = "Success";
            responseReturn.data = results.rows[0];
        
        response.status(200).json(responseReturn);
    )

POST | createStudent()

const createStudent = (request, response) => 
    const  firstname, lastname, origin  = request.body;
    pool.query('INSERT INTO students (firstname, lastname, origin) VALUES ($1, $2, $3)', [firstname, lastname, origin], (error, results) => 
        if (error) 
            throw error
        
        response.status(201).send("Student added");
    )

PUT |
updateStudent()

const updateStudent = (request, response) => 
    const id = parseInt(request.params.id);
    var responseReturn = ResponseClass();
    try 
        const  firstname, lastname, origin  = request.body;
        pool.query('UPDATE students SET firstname = $1, lastname = $2, origin = $3 WHERE id = $4', [firstname, lastname, origin, id], (error, results) => 
            if (error) 
                throw error
            

            responseReturn.status = true;
            responseReturn.code = 200;
            responseReturn.message = "User modification successed";
            responseReturn.data = null;
            response.status(200).send(responseReturn);
        )
     catch (error) 
        responseReturn.status = false;
        responseReturn.code = 500;
        responseReturn.message = error.message;
        responseReturn.data = null
        response.status(500).json(responseReturn);
    

Kode lengkap dari queries.js adalah sebagai berikut :

const Pool = require("pg").Pool;
const pool = new Pool(
    user: 'postgres',
    host: 'localhost',
    database: 'testing_db',
    password: 'development',
    port: 5432
);
const ResponseClass = require("./model/response") // opsional

const getStudents = (request, response) => 
    var responseReturn = new ResponseClass();
    pool.query('SELECT * FROM students ORDER BY id ASC', (error, results) => 
        if (error) 
            throw error
        

        responseReturn.status = true;
        responseReturn.code = 200;
        responseReturn.message = "Success";
        responseReturn.data = results.rows;

        response.status(200).json(responseReturn);
    )


const getStudentById = (request, response) => 
    var responseReturn = new ResponseClass();
    const id = parseInt(request.params.id)
    pool.query('SELECT * FROM students WHERE id = $1', [id], (error, results) => 
        if (error) 
            throw error
        
        if (results.rowCount == 0) 
            responseReturn.status = true;
            responseReturn.code = 404;
            responseReturn.message = "User not found";
            responseReturn.data = null;
         else 
            responseReturn.status = true;
            responseReturn.code = 200;
            responseReturn.message = "Success";
            responseReturn.data = results.rows[0];
        
        response.status(200).json(responseReturn);
    )


const createStudent = (request, response) => 
    const  firstname, lastname, origin  = request.body;
    pool.query('INSERT INTO students (firstname, lastname, origin) VALUES ($1, $2, $3)', [firstname, lastname, origin], (error, results) => 
        if (error) 
            throw error
        
        response.status(201).send("Student added");
    )


const updateStudent = (request, response) => 
    const id = parseInt(request.params.id);
    var responseReturn = new ResponseClass();
    try 
        const  firstname, lastname, origin  = request.body;
        pool.query('UPDATE students SET firstname = $1, lastname = $2, origin = $3 WHERE id = $4', [firstname, lastname, origin, id], (error, results) => 
            if (error) 
                throw error
            

            responseReturn.status = true;
            responseReturn.code = 200;
            responseReturn.message = "User modification successed";
            responseReturn.data = null;
            response.status(200).send(responseReturn);
        )
     catch (error) 
        responseReturn.status = false;
        responseReturn.code = 500;
        responseReturn.message = error.message;
        responseReturn.data = null
        response.status(500).json(responseReturn);
    


const deleteStudent = (request, response) => 
    const id = parseInt(request.params.id)
    pool.query('DELETE FROM students WHERE id = $1', [id], (error, results) => 
        if (error) 
            throw error
        
        response.status(201).send("Student deleted");
    )



module.exports = 
    getStudents,
    getStudentById,
    createStudent,
    updateStudent,
    deleteStudent

Membuat Endpoint REST API

Langkah selanjutnya adalah membuat endpoint-endpoint yang akan digunakan pada REST API. Endpoint berbentuk sebuah URL yang dapat diakses sesuai dengan metode requestnya (GET, POST, PUT, DELETE).

Langkah pertama yang mesti dilakukan adalah mengimport fungsi-fungsi dari
queries.js dengan cara menambahkan kode :

const db = require('./queries');

pada index.js.

Selanjutnya, kode yang dibentuk adalah sebagai berikut :

const express = require("express");
const bodyParser = require("body-parser");

const app = express();
const port = 3000;
const db = require('./queries');

app.use(bodyParser.json());
app.use(
    bodyParser.urlencoded(
        extended: true
    )
)

app.listen(port, () => 
    console.log("Server is running on " + port);
);

app.get("https://kafesentul.com/", (request, response) => 
    response.json(
        info: 'Hello world!'
    );
)
app.get("/students", db.getStudents);
app.get("/students/:id", db.getStudentById);
app.put("/students/:id", db.updateStudent);
app.post("/students", db.createStudent);
app.delete("/students/:id", db.deleteStudent);

Untuk menjalankan server terserbut, gunakan perintah :

node index.js

Melakukan Hit pada Endpoint REST API

Berikut merupakan cara melakukan hit endpoint yang sudah dibuat dengan menggunakan Postman.

GET

Pada API
http://localhost:3000/students dan http://localhost:3000/students/1 kita dapat langsung meng-hit dengan menggunakan Postman.

POST

Pada metode POST yang kita gunakan untuk menambahkan data students, kita harus
menambahkan request body berupa JSON terlebih dahulu.

PUT

PUT
mirip dengan POST, kita harus menambahkan request body terlebih dahulu.

DELETE

Meng-hit
API DELETE mirip dengan melakukan hit pada endpoint GET.

Kesimpulan

Dengan demikian, kita telah berhasil membuat sebuah REST API yang memiliki fungsionalitas dasar CRUD. Semoga bermanfaat 🙂

Cara menggunakan crud delete nodejs | admin | 4.5
shopee flash sale gratis ongkir
x