Express.js is the most popular Node.js framework for building REST APIs. Its minimal core with middleware architecture makes it flexible and fast.
Route organization: use Router() to create modular route files. Group related endpoints: const router = express.Router(); router.get('/users', handler).
Middleware functions run before handlers: app.use(express.json()), authentication middleware, CORS, rate limiting, and logging. Chain multiple middleware per route.
Error handling: define error-handling middleware with (err, req, res, next) signature. Express recognizes four-parameter functions as error handlers.
REST conventions: GET for reading, POST for creating, PUT/PATCH for updating, DELETE for removing. Use proper HTTP status codes: 200 OK, 201 Created, 404 Not Found, 500 Server Error.
Project structure: separate routes, controllers, models, and middleware into directories. Use async error wrappers to avoid try/catch in every handler.