Lewati ke konten utama

Apa itu Flowra?

Flowra adalah framework Node.js modular yang dibangun di atas Express. Flowra memberi tim struktur yang jelas, service container dengan dependency injection, dan CLI yang membuat kode konsisten. Anda menulis JavaScript biasa, tetap memakai semantik Express, dan mendapatkan framework yang bisa berkembang bersama API Anda.

Sekilas

  • Lapisan HTTP kompatibel Express dengan middleware dan routing yang familiar.
  • Arsitektur berbasis modul yang mengelompokkan routes, controllers, services, dan models.
  • Dependency injection melalui container yang me-resolve service berdasarkan nama.
  • Lapisan data berbasis Knex dengan beberapa alias koneksi.
  • CLI tooling untuk scaffolding, migrasi, health check, dan cleanup.

Komponen inti

KomponenTujuanLokasi
ModulesSlice fitur berisi routes, controllers, services, dan modelsapp/Modules/
ContainerDependency injection dan registrasi module scopeapp/Bootstrap/Container/
HTTP bootstrapSetup Express, middleware, dan routingapp/Bootstrap/server.bootstrap.js
ConfigurationKonfigurasi berbasis environment untuk app, DB, cache, loggingapp/Config/
CLIMembuat proyek, generator, dan utilitas devflowra (dari flowra-cli)

Modul minimal

Buat modul dengan CLI:

flowra make:module status

Flowra akan memasang modul di app/Modules/modules.manifest.js dan membuat boilerplate. File route terlihat seperti ini:

app/Modules/Status/status.routes.js
'use strict';

function registerStatusRoutes({ router, container } = {}) {
if (!router || !container) {
return router;
}

const controller = container.resolve('modules.status.controllers.main');
router.get('/status', controller.index.bind(controller));

return router;
}

module.exports = registerStatusRoutes;

Controller yang dihasilkan sudah memanggil layer service, jadi Anda hanya perlu mengisi logic yang bermakna:

app/Modules/Status/Status.service.js
'use strict';

class StatusService {
async list() {
return {
ok: true,
uptime: process.uptime(),
node: process.version,
};
}
}

module.exports = StatusService;

Jalankan server dan akses GET /status.

Langkah berikutnya

Baca Design Philosophy untuk memahami prinsip Flowra, atau langsung ke Installation.