Image

Ngorei

framework v4.0.2

Komponen

Intro
Rute
Render

Module

Module adalah komponen dalam Ngorei Framework yang memungkinkan Anda untuk menampilkan dan memproses data dari database atau sumber data lainnya dalam format JSON. Module menggunakan sintaks khusus yang memudahkan pengambilan dan pemformatan data.

<Module 
 data="nama_tabel"
 fields="field1,field2,field3"
 import="path/to/App.js"
/>

Atribut

Atribut Deskripsi Wajib Contoh
data Nama tabel atau sumber data yang akan digunakan Ya data="users"
fields Daftar field yang akan diambil, dipisahkan dengan koma Ya fields="id,nama,email"
where Kondisi untuk memfilter data Tidak where="status = 'active'"
limit Batasan jumlah data yang diambil Tidak limit="10"
import Path ke file JavaScript untuk mengimpor data Tidak import="js/data.js"
orderBy Pengurutan data berdasarkan field tertentu Tidak orderBy="created_at DESC"
groupBy Pengelompokan data berdasarkan field tertentu Tidak groupBy="category"

Import JavaScript

Atribut import pada Module digunakan untuk mengimpor file JavaScript yang berisi data atau logika tambahan. File JavaScript yang diimpor harus mengikuti format berikut:

  • Data harus dienkripsi menggunakan Base64
  • Data harus dalam format JSON yang valid
  • File JS harus menyertakan data-key sebagai atribut pada tag script

Ketika Module memuat file JavaScript, data akan secara otomatis didekripsi dan diproses sesuai dengan atribut yang ditentukan (where, limit, orderBy, dll).

const script = document.querySelector('script[src*="App.js"]');
if (script) {
    try {
        // Ambil data terenkripsi
        const encodedData = script.getAttribute('data-key');
        // Dekripsi base64 ke string
        const decodedString = atob(encodedData);  
        // Parse JSON string yang sudah didekripsi
        const jsonData = JSON.parse(decodedString);
        // Log data untuk debugging
        console.log(jsonData);
    } catch (error) {
        console.error('Error decoding data:', error);
    }
} else {
    console.error('Script tag not found');
}