Express.js is a Node.js web framework that simplifies routing, middleware, and request/response handling.
Node.js is the runtime; Express runs on top of Node.js and provides a higher-level API for building web applications and REST services.
Deep dive
Express request lifecycle
A request normally passes through middleware and then reaches a matching route handler. Middleware can perform common work once instead of duplicating it in every route.
Application organization
For small learning projects, a single file is fine. For production applications, separate routes, controllers, services, database access, configuration, and middleware as complexity grows.