JSM>в любом другом языке что-то похожее на экспресс называлось бы микрофреймворк, как мне кажется
Express расширяется сколь угодно модулями Node.JS. А так как все, что написано на JS, рассчитано на использование в Node (иначе оно никому не нужно), то все эти модули довольно хорошо стыкуются друг с другом. При наличии пакетного менеджера это все делается элементарно. Никакой жестко навязанной архитектуры и выбранных компонентов. Разработчик сам решит, какой ORM или шаблонизатор использовать и как раскладывать файлы по папкам.
А Express мне понравился тем, что в любом другом фреймворке доступны либо элементарные вещи и там более менее понятно, как оно работает, либо монстр, в котором доступна конфигурация и дальше творится магия без понимания ее внутреннего устройства. С Express'ом доступна простота и прозрачность одновременно с безграничными возможностями расширения. Все делается просто (насколько это возможно) и удобно. При этом сам Express по сути элементарное приложение. Это тонкая прослойка над модулем http из Node.JS, который добавляет методы для реализации роутера и обработку ошибок. Обработка любого запроса делается цепочкой единообразных функций (при этом функция-обработчик от middleware ничем не отличается). Роутер тоже не накладывает требований использования "единственно правильной по мнению создателя фреймворка реализации REST". Потому что единственно правильного ничего не бывает. Express дает функции по количеству методов в HTTP и ты сам можешь реализовать любой роутер (для REST или своего собственного способа). Проще, наверное, придумать не возможно, но эти простые методы не ограничивают по возможностям.
В общем, Express сам простой и позволяет на нем писать просто. Никаких ненужных навязанных решений, потому что какой-то умник так решил. При этом он позволяет неограниченно расширяться и реализовать любое, сколь угодно сложное приложение.