Koa — это веб-фреймворк, рекламируемый как «выразительный фреймворк промежуточного программного обеспечения HTTP для Node.js, который делает написание веб-приложений и API более приятным». При первом прочтении это заявление может найти отклик у творческих программистов больше, чем у других.

Как разработчик Fullstack Javascript, специализирующийся на стеке NERD (Node, Express, React и базы данных, использующие SQL), я обнаружил, что получаю удовольствие от разработки бэкэнда при использовании Node в сочетании с Express. Если Express и Node похожи на арахисовое масло и желе, то Node и Koa будут ближе к сливочному сыру и желе. Эта аналогия с едой может показаться несоответствующей рассматриваемой теме, но по мере ее дальнейшего анализа мы понимаем, что сравнение двух вариантов может быть не идеальной перспективой.

На первый взгляд, я бы назвал Koa лучшим вариантом, но после дальнейших исследований кажется, что определение превосходства — непростая задача. Эти два фреймворка следует рассматривать не как соперников, а как братьев и сестер, созданных из одной ткани; выбор одного над другим должен быть просто предпочтением или решением, основанным на намерении создаваемого продукта. Этот ответ не удовлетворит каждого читателя, но я призываю вас прочитать это утверждение для получения дополнительных разъяснений.

Как младшему разработчику, работающему в динамично развивающейся области, важно оставаться открытым для изучения новых технологий, чтобы не ограничивать себя слишком рано в своей карьере. Понятие Koa v Express является ложным, и его необходимо переписать; почему бы не изучить оба Koa и Express (возможно, не одновременно).

— Читатель: Но я уже работаю над X, изучая Y и готовясь к Z, зачем мне учить и то, и другое, если они больше похожи на братьев и сестер?

Игнорируйте любые пристрастия, пока мы возвращаемся к вышеупомянутой аналогии с едой. Подобно яблокам и апельсинам, арахисовое масло и желе, сливочный сыр и желе могут иметь явное сходство, но в конечном итоге считаются несопоставимыми из-за различий в структуре и вкусе. Конечно, мы можем создать алгоритм для более четких сравнений, но это будет пустой тратой времени. Желе Express и Koa представляет собой аспект HTTP, который окутан фреймворками, но используется по-разному. Express распространяется на объект запроса и ответа, предоставляемый узлом, тогда как Koa делегирует эти объекты, что часто приводит к меньшему количеству ошибок.

— Читатель: Почему коа похож на сливочный сыр? Сахар.

Коа легкий и содержит много синтаксического сахара, экспресс-это вариант наполнения, который призван предложить больше средств к существованию. Я советую не быть обжорой (в наказание), перелопачивая все сразу на своей тарелке, просто выберите сначала изучить что-то, основываясь на том, что вы пытаетесь создать. Важно отметить, что Koa был разработан той же командой, что и Express, и мог бы стать преемником Express, если бы не капитальный ремонт в реализации. Express имеет дело с обратными вызовами (и, возможно, адом обратных вызовов), в то время как Koa использует генераторы для своих старых версий и async/await ES7 для Koa 2.0 и выше.

— Читатель: Почему тогда Коа не лучший выбор?

Express — ветеран с проверенной репутацией и репутацией надежного поставщика. Количество онлайн-ресурсов также упрощает получение Express, а идея иметь больше пакетов также имеет массовую привлекательность. Сам Koa претерпел некоторые большие изменения после ухода от генераторов, и Express, возможно, перенял лучшие функции, которые может предложить Koa. Проще говоря, Koa феноменален, но Express знаком и ни в коем случае не ослабляет. Напрашивается вопрос, а стоит ли брать что-то новое, если ведущий соперник и так работает хорошо.

Koa поставляется с небольшим набором и готов к работе с минимальными требованиями. Фреймворк «следующего поколения» работает с двунаправленным стеком промежуточного программного обеспечения, который позволяет легко обрабатывать большинство ошибок. Этот привлекательный стимул для изучения Koa быстро рассеивается при осознании того, что разработчика поощряют писать свои собственные функции для ведения журналов, промежуточного программного обеспечения и маршрутизации любым удобным для них способом. Для некоторых это может быть именно то, что говорит Коа, «более приятно писать», но для других это может представлять очевидную проблему. Я считаю, что кодирование может быть ремеслом, но я также сторонник того, чтобы код оставался сухим и модульным, зачем писать свои собственные функции, если для этой цели уже существует библиотека с надежной экосистемой вокруг нее. Возможно, я наконец принял современный менталитет Javascript, где идея написания ненужных строк может показаться новым изобретением велосипеда.

Мой аргумент в пользу изучения обоих прост: сначала изучите способ Koa Express и определите, стоит ли его брать.

— Читатель: Что такое Коа Экспресс?

Koa можно использовать в качестве альтернативы Express и быть независимым от узловых модулей. Несмотря на стремление Koa к самодостаточности, кажется, что сообщество Javascript питает страсть к модулям. Можно использовать Koa способом, напоминающим Express, до такой степени, что код становится неразличимым для неопытного глаза. Обязательно установите следующие пакеты или что-то подобное: koa-bodyparser, koa-static и koa-router. Используя Koa с этой настройкой, любой пользователь Express будет чувствовать себя как дома. Это обеспечивает идеальную золотую середину для любых новых разработчиков, которые еще не изучили какие-либо веб-фреймворки. С помощью этой опции можно быстро научиться использовать два чрезвычайно популярных веб-фреймворка (и это правильно), а затем иметь возможность свободно выбирать свои предпочтения, основываясь на опыте, а не на мнениях или тенденциях.