Express.js is a web framework based on the core Node.js http module and Connect components. Those components are called middleware. They are the cornerstone of the framework’s philosophy, which is configuration over convention. Some developers familiar with Ruby compare Express.js to Sinatra, which has a very different approach from the Ruby on Rails framework that favors convention over configuration. In other words, developers are free to pick whatever libraries they need for a particular project. This approach provides them with flexibility and the capability to highly customize their projects.