Arsitektur & Best Practices — Node.js

Mengorganisir kode Express.js agar maintainable saat project berkembang. Struktur folder yang baik: src/ ├── routes/ ← Route definitions │ ├── users.js │ └── po

Mengorganisir kode Express.js agar maintainable saat project berkembang.

Struktur folder yang baik:

src/
├── routes/        ← Route definitions
│   ├── users.js
│   └── posts.js
├── controllers/   ← Business logic
│   ├── userController.js
│   └── postController.js
├── services/      ← Complex business logic
│   └── authService.js
├── models/        ← Database models
│   └── User.js
├── middleware/     ← Custom middleware
│   ├── auth.js
│   └── validate.js
├── utils/         ← Helper functions
└── app.js         ← Express setup

Separation of concerns:

// routes/users.js — hanya routing
router.get("/", userController.list);
router.post("/", validate(createUserSchema), userController.create);

// controllers/userController.js — handle request/response
export const list = async (req, res) => {
  const users = await userService.getAllUsers();
  res.json(users);
};

// services/userService.js — business logic
export const getAllUsers = async () => {
  return db.query("SELECT * FROM users WHERE active = 1");
};

Best practices:

Yang akan kamu pelajari