Quickstarters

Cara Membangun Backend untuk NodeJS?

52min

Pendahuluan

Dalam tutorial ini, Anda akan belajar bagaimana membangun backend lengkap untuk aplikasi NodeJS menggunakan Back4app.

Kami akan membahas integrasi fitur-fitur penting Back4app - seperti manajemen database, Fungsi Cloud Code, API REST dan GraphQL, otentikasi pengguna, dan kueri waktu nyata (Live Queries) - untuk membuat backend yang aman, dapat diskalakan, dan kuat yang berkomunikasi dengan mulus dengan kode NodeJS Anda.

Anda juga akan melihat bagaimana pengaturan cepat dan lingkungan intuitif Back4app dapat secara drastis mengurangi waktu dan usaha dibandingkan dengan mengonfigurasi server dan database secara manual.

Sepanjang jalan, Anda akan mendapatkan pengalaman langsung dengan fungsionalitas kunci, termasuk fitur keamanan tingkat lanjut, penjadwalan tugas dengan Cloud Jobs, dan pengaturan webhook untuk integrasi eksternal.

Pada akhir tutorial ini, Anda akan siap untuk meningkatkan pengaturan dasar ini menjadi aplikasi siap produksi, atau dengan mudah menggabungkan logika kustom dan API pihak ketiga sesuai kebutuhan.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda akan membutuhkan:

  • Akun Back4app dan proyek Back4app baru Memulai dengan Back4app. Jika Anda tidak memiliki akun, Anda dapat membuat satu secara gratis. Ikuti panduan di atas untuk menyiapkan proyek Anda.
  • Node.js (versi 14 atau lebih tinggi) terinstal Anda akan membutuhkan Node.js untuk menginstal paket npm dan menjalankan server backend Anda. Menginstal Node.js
  • Pengaturan NodeJS dasar Anda dapat menginisialisasi proyek Node dengan menjalankan npm init (atau yarn init). Pastikan Anda memiliki file package.json untuk mengelola ketergantungan Anda.
  • Keterampilan dalam JavaScript dan konsep dasar NodeJS Dokumentasi Resmi NodeJS. Jika Anda baru mengenal Node, tinjau dokumen resmi atau tutorial pemula sebelum memulai.

Pastikan Anda memiliki semua prasyarat ini sebelum Anda mulai. Memiliki proyek Back4app Anda yang disiapkan dan lingkungan NodeJS lokal Anda siap akan membantu Anda mengikuti lebih mudah.

Langkah 1 – Menyiapkan Proyek Back4app

Buat Proyek Baru

Langkah pertama dalam membangun backend NodeJS Anda di Back4app adalah membuat proyek baru. Jika Anda belum membuatnya, ikuti langkah-langkah ini:

  1. Masuk ke akun Back4app Anda.
  2. Klik tombol “Aplikasi Baru” di dasbor Back4app Anda.
  3. Beri nama aplikasi Anda (misalnya, “NodeJS-Backend-Tutorial”).
Document image


Setelah proyek dibuat, Anda akan melihatnya terdaftar di dasbor Back4app Anda. Proyek ini akan menjadi dasar untuk semua konfigurasi backend yang dibahas dalam tutorial ini.

Hubungkan Parse SDK

Back4app bergantung pada Parse Platform untuk mengelola data Anda, menyediakan fitur waktu nyata, menangani otentikasi pengguna, dan lainnya. Menghubungkan aplikasi NodeJS Anda ke Back4app melibatkan pemasangan paket npm parse dan menginisialisasinya dengan kredensial dari dasbor Back4app Anda.

Ambil Kunci Parse Anda: Di dasbor Back4app Anda, navigasikan ke bagian “Pengaturan Aplikasi” atau “Keamanan & Kunci” aplikasi Anda untuk menemukan ID Aplikasi dan Kunci JavaScript. Anda juga akan menemukan URL Server Parse (sering dalam format https://parseapi.back4app.com).

Document image


Pasang Parse SDK di proyek NodeJS Anda:

Bash


Jika Anda menggunakan Yarn, Anda dapat menginstalnya dengan:

Bash


Inisialisasi Parse di aplikasi NodeJS Anda:

Buat file (misalnya, parseConfig.js) di root proyek Node Anda:

src/parseConfig.js


Kemudian, di file entri utama Anda (misalnya, index.js), impor Parse untuk membangun koneksi:

JS


Dengan menyelesaikan langkah ini, Anda telah membangun koneksi yang aman antara backend NodeJS Anda dan infrastruktur Back4app. Semua permintaan dan transaksi data dialihkan dengan aman melalui SDK ini, mengurangi kompleksitas panggilan REST atau GraphQL manual (meskipun Anda masih dapat menggunakannya jika diperlukan).

Langkah 2 – Menyiapkan Database

Menyimpan dan Mengambil Data

Dengan proyek Back4app Anda yang sudah disiapkan dan SDK Parse terintegrasi ke dalam aplikasi Node Anda, Anda sekarang dapat mulai menyimpan dan mengambil data. Cara termudah untuk membuat catatan adalah dengan menggunakan kelas Parse.Object :

JS


Sebagai alternatif, Anda dapat menggunakan endpoint REST API Back4app:

Curl


Back4app juga menyediakan antarmuka GraphQL:

GraphQL


Berbagai opsi ini memungkinkan Anda untuk mengintegrasikan operasi data dengan cara yang paling sesuai dengan proses pengembangan Anda - apakah itu melalui Parse SDK, REST, atau GraphQL.

Desain Skema dan Tipe Data

Secara default, Parse memungkinkan pembuatan skema secara langsung, tetapi Anda juga dapat mendefinisikan kelas dan tipe data Anda di dasbor Back4app untuk kontrol yang lebih.

  1. Navigasikan ke bagian “Database” di dasbor Back4app Anda.
  2. Buat kelas baru (misalnya, “Todo”) dan tambahkan kolom yang relevan, seperti title (String) dan isCompleted (Boolean).
Buat Kelas Baru
Buat Kelas Baru


Back4app juga mendukung berbagai tipe data: String, Number, Boolean, Object, Date, File, Pointer, Array, Relation, GeoPoint, dan Polygon. Anda dapat memilih tipe yang sesuai untuk setiap field. Jika Anda mau, Anda juga dapat membiarkan Parse secara otomatis membuat kolom ini saat Anda pertama kali menyimpan objek dari aplikasi Node Anda.

Buat Kolom
Buat Kolom


Back4app menawarkan AI Agent yang dapat membantu Anda merancang model data Anda:

  1. Buka AI Agent dari Dasbor Aplikasi Anda atau di menu.
  2. Deskripsikan model data Anda dalam bahasa sederhana (misalnya, “Tolong, buat aplikasi ToDo baru di back4app dengan skema kelas yang lengkap.”).
  3. Biarkan AI Agent membuat Skema untuk Anda.
Document image


Menggunakan AI Agent dapat menghemat waktu Anda saat mengatur arsitektur data Anda dan memastikan konsistensi di seluruh aplikasi Anda.

Data Relasional

Jika Anda memiliki data relasional - katakanlah, sebuah Kategori objek yang menunjuk ke beberapa Todo item - Anda dapat menggunakan Pointers atau Relations di Parse. Misalnya, menambahkan pointer ke sebuah Kategori:

JS


Saat Anda melakukan query, Anda juga dapat menyertakan data pointer:

JS


Panggilan include('category') ini mengambil detail kategori bersamaan dengan setiap Todo, membuat data relasional Anda dapat diakses dengan mudah.

Query Langsung

Untuk pembaruan waktu nyata, Back4app menyediakan Live Queries. Di aplikasi NodeJS Anda, Anda dapat berlangganan untuk perubahan di kelas tertentu:

  1. Aktifkan Live Queries di dasbor Back4app Anda di bawah Pengaturan Server. Pastikan “Live Queries” diaktifkan.
  2. Inisialisasi Langganan Live Query di kode Anda:
src/parseConfig.js

JS


Dengan berlangganan, Anda menerima notifikasi waktu nyata setiap kali Todo baru dibuat, diperbarui, atau dihapus. Fitur ini sangat berharga untuk aplikasi kolaboratif atau dinamis di mana banyak pengguna perlu melihat data terbaru tanpa secara manual memeriksa server.

Langkah 3 – Menerapkan Keamanan dengan ACL dan CLP

Mekanisme Keamanan Back4app

Back4app menganggap keamanan dengan serius dengan menyediakan Daftar Kontrol Akses (ACL) dan Izin Tingkat Kelas (CLP). Fitur-fitur ini memungkinkan Anda membatasi siapa yang dapat membaca atau menulis data berdasarkan objek atau kelas, memastikan hanya pengguna yang berwenang yang dapat memodifikasi data Anda.

Document image


Daftar Kontrol Akses (ACL)

Sebuah ACL diterapkan pada objek individu untuk menentukan pengguna, peran, atau publik mana yang dapat melakukan operasi baca/tulis. Misalnya:

JS


Ketika Anda menyimpan objek, ia memiliki ACL yang mencegah siapa pun kecuali pengguna yang ditentukan untuk membaca atau memodifikasinya.

Edit ACL
Edit ACL


Izin Tingkat Kelas (CLP)

CLP mengatur izin default seluruh kelas, seperti apakah kelas tersebut dapat dibaca atau ditulis secara publik, atau jika hanya peran tertentu yang dapat mengaksesnya.

  1. Pergi ke Dasbor Back4app Anda, pilih aplikasi Anda, dan buka Database bagian.
  2. Pilih sebuah kelas (misalnya, “Todo”).
  3. Buka Izin Tingkat Kelas tab.
  4. Konfigurasikan default Anda, seperti “Memerlukan Autentikasi” untuk baca atau tulis, atau “Tidak Ada Akses” untuk publik.
Document image


Izin ini menetapkan dasar, sementara ACL memperhalus izin untuk objek individu. Model keamanan yang kuat biasanya menggabungkan baik CLP (pembatasan luas) dan ACL (pembatasan per-objek yang lebih halus). Untuk informasi lebih lanjut, kunjungi Pedoman Keamanan Aplikasi.

Langkah 4 – Menulis dan Menerapkan Fungsi Cloud

Cloud Code adalah fitur dari lingkungan Parse Server yang memungkinkan Anda menjalankan kode JavaScript kustom di sisi server - tanpa perlu mengelola server atau infrastruktur Anda. Dengan menulis Cloud Code, Anda dapat memperluas backend Back4app Anda dengan logika bisnis tambahan, validasi, pemicu, dan integrasi yang berjalan dengan aman dan efisien di Parse Server.

Cara Kerjanya

Ketika Anda menulis Cloud Code, Anda biasanya menempatkan fungsi JavaScript, pemicu, dan modul NPM yang diperlukan di dalam main.js (atau file JS lainnya) dan menerapkannya ke proyek Back4app Anda. Kode ini kemudian dieksekusi dalam lingkungan Parse Server. Karena fungsi dan pemicu ini berjalan di server, Anda dapat mempercayainya untuk menangani logika rahasia, memproses data sensitif, atau melakukan panggilan API yang hanya untuk backend - proses yang mungkin tidak ingin Anda ekspos langsung ke klien.

Semua Cloud Code untuk aplikasi Back4app Anda berjalan di dalam Parse Server yang dikelola oleh Back4app, jadi Anda tidak perlu khawatir tentang pemeliharaan server, penskalaan, atau penyediaan. Setiap kali Anda memperbarui dan menerapkan file Anda, Parse Server yang sedang berjalan diperbarui dengan kode terbaru Anda.

Struktur File main.js Sebuah main.js yang khas mungkin berisi:

  1. Pernyataan require untuk modul yang diperlukan (paket NPM, modul Node bawaan, atau file cloud code lainnya).
  2. Definisi fungsi Cloud menggunakan Parse.Cloud.define().
  3. Pemicu seperti Parse.Cloud.beforeSave(), Parse.Cloud.afterSave(), dll.
  4. Modul NPM yang Anda instal (jika diperlukan). Misalnya, Anda mungkin menginstal paket seperti axios untuk melakukan permintaan HTTP. Anda kemudian dapat require itu di bagian atas file Anda.
JS


Dengan kemampuan untuk menginstal dan menggunakan modul NPM, Cloud Code menjadi sangat fleksibel, memungkinkan Anda untuk mengintegrasikan dengan API eksternal, melakukan transformasi data, atau mengeksekusi logika sisi server yang kompleks.

Kasus Penggunaan Tipikal

  • Logika Bisnis: Misalnya, Anda dapat menghitung skor pengguna dalam permainan dengan mengagregasi beberapa properti objek, dan kemudian menyimpan data tersebut secara otomatis.
  • Validasi Data: Pastikan bahwa bidang tertentu ada atau bahwa pengguna memiliki izin yang benar sebelum menyimpan atau menghapus catatan.
  • Pemicu: Lakukan tindakan ketika data berubah (misalnya, kirim notifikasi ketika pengguna memperbarui profil mereka).
  • Integrasi: Terhubung dengan API atau layanan pihak ketiga. Misalnya, Anda dapat mengintegrasikan dengan gerbang pembayaran, notifikasi Slack, atau platform pemasaran email langsung dari Cloud Code.
  • Penegakan Keamanan: Tambahkan lapisan keamanan ekstra dengan memvalidasi dan membersihkan parameter input dalam fungsi Cloud Code Anda.

Terapkan Fungsi Anda

Berikut adalah fungsi Cloud Code sederhana yang menghitung panjang string teks yang dikirim dari klien:

main.js


Mengdeploy melalui Back4app CLI:

1 - Instal CLI:

  • Untuk Linux/MacOS:
Bash

Bash


3 - Deploy kode cloud Anda:

Bash


Mengdeploy melalui Dashboard:

  1. Di dashboard aplikasi Anda, pergi ke Cloud Code > Functions.
  2. Salin/tempel fungsi ke dalam editor main.js.
  3. Klik Deploy.
Document image


Memanggil Fungsi Anda

Dari kode NodeJS Anda menggunakan Parse SDK:

JS


Anda juga dapat memanggilnya melalui REST:

Curl


Atau melalui GraphQL:

GraphQL


Fleksibilitas ini memungkinkan Anda untuk mengintegrasikan logika kustom Anda ke dalam bagian mana pun dari lingkungan NodeJS Anda atau klien lain yang mendukung REST atau GraphQL.

Langkah 5 – Mengonfigurasi Autentikasi Pengguna

Autentikasi Pengguna di Back4app

Back4app memanfaatkan kelas Parse User sebagai dasar untuk otentikasi. Secara default, Parse menangani hashing kata sandi, token sesi, dan penyimpanan yang aman. Ini berarti Anda tidak perlu mengatur alur keamanan yang kompleks secara manual.

Mengatur Otentikasi Pengguna

Dalam lingkungan NodeJS, Anda dapat membuat pengguna baru dengan:

JS


Masuk sebagai pengguna yang sudah ada:

JS


Melalui REST, login mungkin terlihat seperti:

Bash


Manajemen Sesi

Setelah login berhasil, Parse membuat sebuah token sesi yang disimpan dalam objek pengguna. Dalam kode Node Anda, Anda dapat mengakses pengguna yang saat ini masuk jika Anda mempertahankan sesi dalam logika aplikasi Anda:

JS


Parse secara otomatis menangani sesi berbasis token di latar belakang, tetapi Anda juga dapat mengelola atau mencabutnya secara manual. Untuk keluar:

JS


Integrasi Login Sosial

Back4app dan Parse dapat terintegrasi dengan penyedia OAuth populer, seperti Google atau Facebook, dengan menginstal paket tambahan atau menggunakan adaptor yang ada. Misalnya, Anda dapat mengatur login Facebook dengan mengonfigurasi Facebook App ID Anda dan menggunakan Parse.FacebookUtils.logIn(). Instruksi rinci bervariasi, jadi silakan merujuk ke Dokumentasi Login Sosial.

JS


Verifikasi Email dan Reset Kata Sandi

Untuk mengaktifkan verifikasi email dan reset kata sandi:

  1. Navigasikan ke Pengaturan Email di dasbor Back4app Anda.
  2. Aktifkan verifikasi email untuk memastikan pengguna baru memverifikasi kepemilikan alamat email mereka.
  3. Konfigurasikan alamat Dari, template email, dan domain kustom Anda jika diinginkan.

Fitur-fitur ini meningkatkan keamanan akun dan pengalaman pengguna dengan memvalidasi kepemilikan email pengguna dan menyediakan metode pemulihan kata sandi yang aman.

Langkah 6 – Menangani Penyimpanan File

Mengunggah dan Mengambil File

Parse mencakup kelas Parse.File untuk menangani unggahan file, yang disimpan dengan aman oleh Back4app:

JS


Untuk melampirkan file ke objek dalam database, Anda dapat melakukan:

JS


Mengambil URL file sangatlah mudah:

JS


Keamanan File

Parse Server menyediakan konfigurasi fleksibel untuk mengelola keamanan unggahan file. Contoh berikut menunjukkan bagaimana Anda dapat mengatur izin untuk mengontrol siapa yang dapat mengunggah file ke server:

{ "fileUpload": { "enableForPublic": true, "enableForAnonymousUser": true, "enableForAuthenticatedUser": true } }

  • enableForPublic: Ketika diatur ke true, memungkinkan siapa saja, terlepas dari status otentikasi, untuk mengunggah file.
  • enableForAnonymousUser: Mengontrol apakah pengguna anonim (yang belum mendaftar) dapat mengunggah file.
  • enableForAuthenticatedUser: Menentukan apakah hanya pengguna yang terautentikasi yang dapat mengunggah file. Ini ideal untuk memastikan bahwa hanya pengguna yang tepercaya yang memiliki akses ke fungsionalitas ini.

Langkah 7 – Menjadwalkan Tugas dengan Cloud Jobs

Pekerjaan Cloud

Pekerjaan Cloud di Back4app memungkinkan Anda untuk menjadwalkan dan menjalankan tugas rutin di backend Anda - seperti membersihkan data lama atau mengirim email ringkasan harian. Pekerjaan Cloud yang tipikal mungkin terlihat seperti ini:

JS

  1. Terapkan Kode Cloud Anda dengan pekerjaan baru (melalui CLI atau dasbor).
  2. Pergi ke Dasbor Back4app > Pengaturan Aplikasi > Pengaturan Server > Pekerjaan Latar Belakang.
  3. Jadwalkan pekerjaan untuk dijalankan setiap hari atau pada interval yang sesuai dengan kebutuhan Anda.
Menjadwalkan Pekerjaan Cloud
Menjadwalkan Pekerjaan Cloud


Pekerjaan Cloud memungkinkan Anda untuk mengotomatiskan pemeliharaan latar belakang atau proses berkala lainnya - tanpa memerlukan intervensi manual.

Langkah 8 – Mengintegrasikan Webhook

Webhook memungkinkan aplikasi Back4app Anda untuk mengirim permintaan HTTP ke layanan eksternal setiap kali peristiwa tertentu terjadi. Ini sangat kuat untuk mengintegrasikan dengan sistem pihak ketiga seperti gerbang pembayaran (misalnya, Stripe), alat pemasaran email, atau platform analitik.

  1. Navigasikan ke konfigurasi Webhook di dasbor Back4app Anda > Lainnya > WebHooks dan kemudian klik pada Tambah Webhook.
  2. Konfigurasi pemicu untuk menentukan peristiwa mana di kelas Back4app Anda atau fungsi Cloud Code yang akan memicu webhook.
Menambahkan Webhook
Menambahkan Webhook


Sebagai contoh, jika Anda ingin memberi tahu saluran Slack setiap kali Todo baru dibuat:

  • Buat Aplikasi Slack yang menerima webhook masuk.
  • Salin URL webhook Slack.
  • Di dasbor Back4app Anda, atur endpoint ke URL Slack tersebut untuk acara “Rekaman baru di kelas Todo.”
  • Anda juga dapat menambahkan header HTTP atau payload kustom jika diperlukan.

Anda juga dapat mendefinisikan Webhook di Cloud Code dengan membuat permintaan HTTP kustom dalam pemicu seperti beforeSave, afterSave:

BeforeSave WebHook
BeforeSave WebHook


Langkah 9 – Menjelajahi Panel Admin Back4app

Aplikasi Admin Back4app adalah antarmuka manajemen berbasis web yang dirancang untuk pengguna non-teknis untuk melakukan operasi CRUD dan menangani tugas data rutin tanpa menulis kode. Ini menyediakan antarmuka yang berorientasi model, ramah pengguna yang menyederhanakan administrasi basis data, manajemen data kustom, dan operasi tingkat perusahaan.

Mengaktifkan Aplikasi Admin

Aktifkan dengan pergi ke Dasbor Aplikasi > Lainnya > Aplikasi Admin dan klik tombol “Aktifkan Aplikasi Admin.”

Aktifkan Aplikasi Admin
Aktifkan Aplikasi Admin


Buat Pengguna Admin Pertama (username/kata sandi), yang secara otomatis menghasilkan peran baru (B4aAdminUser) dan kelas (B4aSetting, B4aMenuItem, dan B4aCustomField) dalam skema aplikasi Anda.

Document image


Pilih Subdomain untuk mengakses antarmuka admin dan selesaikan pengaturannya.

Document image


Masuk menggunakan kredensial admin yang Anda buat untuk mengakses dasbor Aplikasi Admin baru Anda.

Document image


Setelah diaktifkan, Aplikasi Admin Back4app memudahkan untuk melihat, mengedit, atau menghapus catatan dari database Anda - tanpa memerlukan penggunaan langsung dari Parse Dashboard atau kode backend. Dengan kontrol akses yang dapat dikonfigurasi, Anda dapat dengan aman membagikan antarmuka ini dengan anggota tim atau klien yang membutuhkan cara yang jelas dan mudah untuk mengelola data.

Kesimpulan

Dengan mengikuti tutorial komprehensif ini, Anda telah:

  • Membuat backend yang aman untuk aplikasi NodeJS di Back4app.
  • Mengonfigurasi database dengan skema kelas, tipe data, dan hubungan.
  • Mengintegrasikan kueri waktu nyata (Kueri Langsung) untuk pembaruan data segera.
  • Menerapkan langkah-langkah keamanan menggunakan ACL dan CLP untuk melindungi dan mengelola akses data.
  • Mengimplementasikan Cloud Code fungsi untuk menjalankan logika bisnis kustom di sisi server.
  • Mengatur otentikasi pengguna dengan dukungan untuk verifikasi email dan pengaturan ulang kata sandi.
  • Mengelola unggahan file dan pengambilan, dengan kontrol keamanan file opsional.
  • Menjadwalkan Cloud Jobs untuk tugas latar belakang otomatis.
  • Menggunakan Webhooks untuk mengintegrasikan dengan layanan eksternal.
  • Menjelajahi Panel Admin Back4app untuk manajemen data.

Dengan fondasi NodeJS yang solid dan backend Back4app yang kuat, Anda sekarang siap untuk mengembangkan aplikasi yang kaya fitur, dapat diskalakan, dan aman. Teruslah menjelajahi fungsionalitas yang lebih canggih, integrasikan logika bisnis Anda, dan manfaatkan kekuatan Back4app untuk menghemat waktu Anda dalam administrasi server dan database. Selamat coding!

Langkah Selanjutnya

  • Bangun aplikasi NodeJS yang siap produksi dengan memperluas backend ini untuk menangani model data yang lebih kompleks, strategi caching, dan optimasi kinerja.
  • Integrasikan fitur-fitur canggih seperti alur autentikasi khusus, kontrol akses berbasis peran, atau API eksternal (seperti gerbang pembayaran).
  • Periksa dokumentasi resmi Back4app untuk penjelasan lebih dalam tentang keamanan canggih, penyetelan kinerja, dan analisis log.
  • Jelajahi tutorial lainnya tentang aplikasi obrolan waktu nyata, dasbor IoT, atau layanan berbasis lokasi. Anda dapat menggabungkan teknik yang dipelajari di sini dengan API pihak ketiga untuk membuat aplikasi kompleks di dunia nyata.