Lewati ke konten utama

Modules

Modules adalah slice fitur. Setiap modul dapat memiliki routes, controllers, services, models, dan queries sendiri. Flowra menemukan modul dari manifest dan mendaftarkannya ke container.

Module manifest

app/Modules/modules.manifest.js mengatur modul yang dimuat:

app/Modules/modules.manifest.js
module.exports = {
modules: [
{
name: 'users',
path: './Users/users.module.js',
enabled: true,
description: 'Sample user management module.',
},
],
};

Nonaktifkan modul dengan enabled: false atau CLI:

flowra module:disable users

Definisi modul

Setiap modul mengekspor object dengan nama, register function, dan routes:

app/Modules/Users/users.module.js
'use strict';

const registerContainer = require('./users.container');
const registerRoutes = require('./users.routes');

module.exports = {
name: 'users',
register: registerContainer,
routes: registerRoutes,
aliases: {},
};

Layout modul standar

app/Modules/Users/
├─ Users.controller.js
├─ Users.model.js
├─ Users.service.js
├─ users.container.js
├─ users.module.js
└─ users.routes.js

CLI helpers

  • flowra module:list menampilkan status modul.
  • flowra module:enable <name> mengaktifkan modul.
  • flowra module:disable <name> menonaktifkan modul.
Penamaan

Flowra menormalisasi nama modul ke kebab-case di manifest. Nama direktori default menggunakan PascalCase.