Architecture
As a JavaScript application grows, separating it into layers keeps it maintainable — for a Node API:
src/
routes/ # handles HTTP requests (presentation)
services/ # business logic
repositories/ # database access
models/ # data structures
A route calls a service, a service calls a repository — each layer only talks to the one directly below it, so swapping the database later doesn't require rewriting the business logic or routes.