How to organize a Node/Express project — Basic
Separate app entry, routers, controllers, services, and database code into predictable folders.
Learn: A consistent folder layout helps you find code quickly and mirrors how professional teams organize Express APIs. Each resource gets router + controller + service files; shared pieces (db, errors, config) live at the top level.
Supplementary examples
Adding a new resource (tags)
src/tags/
tags.router.js # URLs only
tags.controller.js # req/res
tags.service.js # Knex queriesCourse example
src/
app.js # Express app + global middleware
server.js # listen(PORT)
config/ # logger, env helpers
errors/ # notFound, errorHandler
db/ # knex connection, migrations, seeds
users/
users.router.js
users.controller.js
users.service.js
Additional references & examples
- Thinkful — Organizing Express (pastes example)
Router/controller structure demonstration project.
- Thinkful — Node, Express, Postgres starter
Starter repo used across Knex and Express lessons.