Farih.co.id
Home Programming Cara Menerapkan Express.js REST API di Render: Alternatif untuk Heroku

Cara Menerapkan Express.js REST API di Render: Alternatif untuk Heroku

man programming on a laptop

Pada akhir tahun 2022, Heroku menghentikan opsi tingkat gratisnya yang mengakibatkan penghapusan paket langganan gratis yang tersedia sebelumnya untuk hosting web dan layanan cloud lainnya dalam ekosistemnya.


Tingkatan gratis sangat berguna dan hemat biaya jika Anda berniat menerapkan dan menghosting aplikasi untuk waktu yang singkat. Untungnya, ada platform cloud alternatif yang, seperti Heroku, menawarkan tingkat gratis untuk layanan cloud-nya di antara fasilitas lainnya.

Dalam artikel ini, kita akan mempelajari cara menerapkan Express.js REST API di Render, platform hosting berbasis cloud.


Apa Itu Render?

Render adalah platform cloud hosting yang menyediakan cara yang mulus dan tidak merepotkan untuk menerapkan dan mengelola situs web statis, aplikasi web lengkap, API backend, atau database di cloud. Fitur-fiturnya meliputi:

  • Antarmuka yang ramah pengguna: Render menyediakan antarmuka yang sederhana dan intuitif yang menyederhanakan proses penerapan aplikasi yang dibangun menggunakan bahasa pemrograman populer seperti Python dan Node.js.
  • Database bawaan: Render menawarkan dukungan bawaan untuk database populer seperti PostgreSQL, MySQL, dan MongoDB, membuatnya mudah untuk menyiapkan dan mengintegrasikan database ke dalam aplikasi tanpa harus menyiapkan server database terpisah.
  • Alur kerja penerapan yang lancar: Render menyediakan fitur seperti deployment otomatis, rollback, dan integrasi dengan layanan populer seperti GitHub dan GitLab.
  • Domain khusus dan SSL: Render menawarkan kemampuan untuk mengonfigurasi nama domain khusus untuk situs web dan aplikasi web, dan itu termasuk sertifikat SSL gratis untuk akses HTTPS yang aman.

Perbandingan Antara Render dan Heroku

Seperti platform cloud lainnya, Render memiliki kelebihan dan kekurangannya. Tapi bagaimana jika dibandingkan dengan solusi cloud populer seperti Heroku?

  • Kesederhanaan: Render menyediakan antarmuka yang mudah digunakan untuk menyebarkan dan mengelola aplikasi, dengan fokus pada kemudahan penggunaan dan konfigurasi minimal.
  • Penskalaan otomatis: Render secara otomatis menskalakan aplikasi berdasarkan permintaan, tanpa memerlukan penyesuaian manual atau konfigurasi yang rumit.
  • Efektivitas biaya: Render menawarkan harga hemat biaya yang mencakup tingkat gratis untuk proyek individu dan harga yang relatif rendah untuk rencana tim dan organisasi, menjadikannya pilihan ramah anggaran untuk menghosting aplikasi web skala kecil dan proyek komersial besar.
  • Fleksibilitas terbatas: Kesederhanaan dan konfigurasi minimalnya dapat menjadi batasan untuk proyek lanjutan dan kompleks yang memerlukan lebih banyak penyesuaian dan kontrol atas lingkungan hosting.

Siapkan Proyek Baru di Render

Untuk memulai, tajuk ke situs Render dan daftar dan masuk ke akun Anda.

Beranda Render di situs web resmi

Render memudahkan penerapan dan pengelolaan API backend dengan menawarkan dukungan bawaan untuk bahasa pemrograman populer dan layanan web yang menyederhanakan proses penerapan.

Panduan ini akan menggunakan fitur layanan webnya untuk menerapkan API REST Express.js. Untuk mengikuti, Anda harus menyiapkan instance database PostgreSQL terlebih dahulu di Render.

Pada halaman ikhtisar, klik pada PostgreSQL baru tombol untuk menyiapkan instance baru.

Fitur Render di beranda

Selanjutnya, isi nama database Anda, dan klik Buat basis data. Terakhir, salin URL Basis Data Internal asalkan. Anda akan menggunakannya untuk mengonfigurasi koneksi antara Express REST API dan database PostgreSQL.

Pada dasarnya, URL Basis Data Internal digunakan untuk membuat koneksi antara aplikasi yang berjalan di server Render seperti API yang diterapkan atau aplikasi web yang lengkap.

Informasi Basis Data PostgreSQL yang baru disiapkan di halaman pengaturan Render

Meskipun demikian, jika Anda hanya ingin menggunakan database PostgreSQL dari aplikasi yang diterapkan di platform lain, Anda dapat menggunakan URL Database Eksternal untuk mengkonfigurasi koneksi database.

Buat API REST Express.js

Lanjutkan dan buat server web Express.js. Selanjutnya, instal paket-paket berikut:

 npm install pg knex 

Konfigurasi Koneksi Database

Untuk menyiapkan koneksi antara API Express.js dan instance PostgreSQL Render, di direktori akar folder proyek Anda, buat db.js file dan tambahkan kode di bawah ini.

 const knex = require('knex');
const db = knex({
  client: 'pg',
  connection: {
    connectionString: 'the database URL',
    ssl: {
      rejectUnauthorized: false
    }
  }
});

module.exports = db;

Selanjutnya, buka index.js file, dan tambahkan kode di bawah yang mengimplementasikan REST API sederhana dengan empat rute.

 const express = require("express");
const app = express()
const db = require('./db')
const PORT = process.env.PORT || 5000

app.use(express.json())
app.use(express.urlencoded({ extended: true }))

app.get("https://www.makeuseof.com/", (req, res) => res.send('Hello World!' ))


app.get('/users', async (req, res) => {
    try {
      const users = await db.select().from('users')
      res.json(users)
    } catch (error) {
      console.error(error)
      res.status(500).json({ message: 'Error retrieving users' })
    }
  })
  
  
app.post('/users', async (req, res) => {
  try {
    const user = await db('users').insert({ name: req.body.name }).returning('*')
    res.json(user)
  } catch (error) {
    console.error(error)
    res.status(500).json({ message: 'Error creating user' })
  }
})


app.delete('/users/:id', async (req, res) => {
  try {
    const { id } = req.params
    const user = await db('users').where({ id }).delete().returning('*')
    res.json(user)
  } catch (error) {
    console.error(error)
    res.status(500).json({ message: 'Error deleting user' })
  }
})

app.listen(PORT, () => console.log(`Server up at PORT:${PORT}`))

Siapkan File migrasi.js

Buat map baru, skripdi direktori akar proyek Anda, tambahkan file baru, migrasi.js, dan terakhir, tambahkan kode di bawah ini:

 const db = require('../db');
(async () => {
    try {
    await db.schema.dropTableIfExists('users')
    await db.schema.withSchema('public').createTable('users', (table) => {
      table.increments()
      table.string('name')
     })
       console.log('Created users table!')
       process.exit(0)
   } catch (err) {
      console.log(err)
      process.exit(1)
  }
})()

Kode ini akan membuat yang baru pengguna tabel dalam database dengan dua kolom: bidang kunci primer yang bertambah secara otomatis dan bidang nama.

Terakhir, tambahkan perintah ini ke file Anda package.json mengajukan.

 "scripts": {
   "start": "node index.js",
   "migrate": "node scripts/migrate.js",
},

Terakhir, untuk membuat tabel pengguna di database, Anda perlu menjalankan migrasi.js file sebagai skrip di terminal Anda menggunakan perintah di bawah ini.

 npm run migrate

Namun, sebelum menjalankan perintah, pastikan untuk mengambil file URL Database Eksternal dari informasi pengaturan instance PostgreSQL Render, dan tempelkan ke file db.js file sebagai string koneksi.

Ini akan membuat koneksi dengan instance database dari mesin lokal Anda, memungkinkan Anda membuat tabel sebelum menerapkan API. Setelah tabel dibuat, Anda kemudian dapat menuju ke instance PostgreSQL Render Anda, mengambil file URL Basis Data Internaldan memperbarui db.js mengajukan sesuai.

Terapkan REST API pada Render

Pertama, buat repositori baru di GitHub dan dorong kode proyek. Selanjutnya, masuk ke akun Render Anda, klik pada Baru+ lalu pilih Layanan web pilihan dari menu drop-down.

Menu drop menampilkan daftar fitur yang disediakan oleh Render dengan opsi layanan web yang dipilih.

Terakhir, akses akun GitHub Anda, pilih repositori proyek Anda, dan sambungkan ke Render.

Halaman pengaturan Koneksi GitHub Render.

Pada halaman pengaturan layanan web, berikan nama untuk layanan baru, tentukan direktori root proyek, perintah bangun dan mulai, dan terakhir, klik Buat Layanan Web. Setelah proses penerapan selesai, salin URL yang disediakan untuk menguji titik akhir di Postman.

Uji Titik Akhir API pada Postman

Tukang pos adalah alat populer untuk mengembangkan dan menguji API. Agar terbiasa dengan Postman, pelajari cara menggunakannya untuk menguji API.

Untuk menguji API yang diterapkan, buat a POS permintaan ke /pengguna titik akhir untuk menyimpan data dalam database PostgreSQL.

Permintaan API POST dibuat di Postman

Terakhir, buat permintaan GET untuk mengambil data yang disimpan.

permintaan API GET

Apakah Render Alternatif yang Layak?

Render menyediakan proses penyiapan yang mudah, dan integrasi tanpa batas dengan sistem kontrol versi populer menjadikannya platform hosting awan alternatif yang baik.

Selain itu, model penetapan harganya yang kompetitif dan dukungan bawaan untuk alat pengembangan populer menjadikannya pilihan yang andal dan ramah pengguna untuk proyek sampingan dan aplikasi komersial besar.

Comment
Share:

Leave a Reply

Your email address will not be published. Required fields are marked *

Ad