Skip to content
AgileLogics
4 min read

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.