DEV Community

Cover image for Deploy Backend API with Express Js to cPanel
sumberweb
sumberweb

Posted on • Edited on

Deploy Backend API with Express Js to cPanel

Tech Stack : NodeJs, Express, Prisma, @prisma/client, cors, dotenv and Mysql

1. Pertama

Siapkan file project yang sudah berjalan di local komputer dan lakukan compress pada file project yang di butuhkan, untuk folder node_modules tidak perlu ikut serta dalam compress file dikarenakan nantinya akan di setup melalui menu Setup Node.Js App pada cPanel.

Image description

2. Kedua

Login cPanel Hosting dan navigasikan ke menu Setup Node.Js App > Create Application sehingga tampilanya akan menjadi seperti berikut :

Image description

  • Pertama pilih Node.Js Version dan Application mode ( production atau development )
  • Kedua tentukan Application root - dalam tampilan di atas api-todoapp merupakan application rootnya ( berbentuk folder ) yang nantinya akan menyimpan file project aplikasinya.
  • Ketiga tentukan Application URL nya - dalam tampilan diatas nantinya project backend akan diakses dengan url subdomain https://api-todoapp.codesync.id artinya API tidak lagi diakses dengan http://localhost untuk melakukan request data seperti ketika pengaplikasian pada local komputer.
  • Keempat tentukan Application startup file. Dalam project ini startup file yang akan di jalankan adalah index.js disesuaikan dengan aplikasi masing masing.
  • Kelima adalah CREATE.

Sebagai testing Node.Js berjalan dengan baik atau tidak bisa di cek dengan akses URL https://api-todoapp.codesync.id yang jika berkerja dengan baik tampilanya akan seperti berikut:

Image description

3. Ketiga

  • Upload Project aplikasi ke cPanel > File Manager Hosting.

Image description
Folder api-todoapp merupakan Application root yang sebelumnya sudah buat ketika melakukan Setup Node.Js App, di folder tersebut adalah tempat dimana kita akan upload file project aplikasinya.

Image description
Setelah file upload selesai, hasil upload bisa langsung di extract dan hasilnya akan seperti berikut.

Image description

4. Keempat

Setup Database. cPanel > MySQL® Databases, Create New Database sesuai dengan nama database yang ada di lokal komputer dan Add New User > setup untuk username dan password [ pastikan username dan password sudah di save di note pribadi ] kemudian Add User To Database pilih user yang sudah di buat dan database yang baru di buat dilanjutkan dengan Manage User Privileges seperti tampilan berikut :

Image description

5. Kelima

Import Database. Lakukan export database project pada lokal komputer dan import ke hosting dengan cara ke menu cPanel > phpMyAdmin dan tampilan import database akan seperti berikut :

Image description

5. Keenam

Konfigurasi file .env - cPanel > File Manager > api-todoapp > .env

konfigurasi file .env ini sangat diperlukan dikarenakan untuk menyesuaikan environtment baru yang mana sebelumnya konfirgurasi koneksi database berjalan pada lokal komputer dan saat ini koneksi database terhubung dengan environtment hosting.

Image description

7. Ketujuh

Jalankan Setup Node.Js App - setelah melakukan konfigurasi pada file .env dilanjutkan dengan menjalankan setup nodeJs nya. Pastikan sebelum mejalankan aplikasi halaman browser sudah di refresh dan lakukan Restart pada Setup Node.Js App nya. Jalankan Run NPM Install dan hasilnya akan seperti message hijau Node.js NPM install completed successfully.

Image description

8. Kedelapan

Muncul Error 503 ketika mengakses URL API ***https://api-todoapp.codesync.id/*** setelah semua setup project sudah berhasil di install pada hosting dan pesan error logs pada file stderr.log

Dalam case project contoh ini terdapat error 503 dari hasil setup project aplikasinya.

Image description

Image description

Error terjadi karena Node.js mencoba menggunakan require() untuk mengimpor modul ES (ECMAScript Module) yang tidak didukung dalam konteks CommonJS. Modul ES diidentifikasi dengan menggunakan ekstensi .mjs atau memiliki kunci "type": "module" di file package.json.

sehingga ada penyesuaian pada file startup pada Setup Node.Js App nya untuk file index.js diganti menjadi index.mjs yang mana dari awal untuk project aplikasinya script / codenya dibuat dengan dengan Modul ES (import).

9. Kesembilan

Berikut ini adalah tampilan ketika URL API backend bekerja. https://api-todoapp.codesync.id/tasks yang mana data sudah tampil dalam bentuk json file dan siap digunakan sebagai API data consume oleh aplikasi frontend.

Image description

Dengan ini tutorial Setup NodeJs untuk aplikasi backend telah selesai dan bisa berjalan dengan normal pada hosting. Untuk tutorial selanjutnya adalah Deploy aplikasi frontend https://todoapp.codesync.id yang mana nantinya aplikasi frontend ini akan melakukan fetch data ke aplikasi backend.

Top comments (0)