Коа Дж.С.
Koa — это новая веб-инфраструктура, разработанная командой Express, которая призвана стать меньшей, более выразительной и более надежной основой для веб-приложений и API. Используя генераторы, Koa позволяет отказаться от обратных вызовов и значительно улучшить обработку ошибок. Koa не включает промежуточное ПО в ядро и предоставляет элегантный набор методов, которые делают написание серверов быстрым и приятным.
Приложение Koa — это объект, содержащий массив функций промежуточного программного обеспечения, которые составляются и выполняются в виде стека по запросу. Koa похожа на многие другие системы промежуточного программного обеспечения, с которыми вы, возможно, сталкивались, такие как Ruby’s Rack, Connect и т. д., однако ключевое дизайнерское решение было принято для обеспечения высокого уровня «сахара» на низкоуровневом уровне промежуточного программного обеспечения. Это улучшает совместимость, надежность и делает написание промежуточного программного обеспечения намного более приятным.
Сюда входят методы для общих задач, таких как согласование содержимого, обновление кеша, поддержка прокси и перенаправление среди прочего. Несмотря на предоставление достаточно большого количества полезных методов, Koa занимает небольшую площадь, поскольку промежуточное ПО не входит в комплект.
Обязательное приложение hello world:
const Koa = требуется('koa');
const приложение = новый Коа();
app.use(ctx => {
ctx.body = «Привет, мир»;
});
приложение.слушай(3000);
Изучайте коа, если:
Как правило, вам нравится быть на шаг впереди и быть на переднем крае.
Ваш проект должен быть перспективным, долговечным и простым в обслуживании в долгосрочной перспективе.
Вы исходите из языка программирования с асинхронными функциями или синхронного стиля работы с асинхронными действиями без обратных вызовов.
Коа против Экспресса
С философской точки зрения Koa стремится «исправить и заменить узел», тогда как Express «дополняет узел». Koa использует обещания и асинхронные функции, чтобы избавить приложения от ада обратных вызовов и упростить обработку ошибок. Он предоставляет свои собственные объекты ctx.request и ctx.response вместо объектов req и res узла.
Express, с другой стороны, дополняет объекты req и res узла дополнительными свойствами и методами и включает в себя множество других «каркасных» функций, таких как маршрутизация и шаблоны, которых нет в Koa.
Таким образом, Koa можно рассматривать как абстракцию http-модулей node.js, тогда как Express — это инфраструктура приложений для node.js.
Чем Koa отличается от Connect/Express?
- Сгенерированный поток управления
- Нет обратного ада.
- Лучшая обработка ошибок с помощью try/catch.
- Домены не нужны.
- Коа голая
- В отличие от Connect и Express, Koa не содержит промежуточного программного обеспечения.
- В отличие от Express маршрутизация не предусмотрена.
- В отличие от Express, многие удобные утилиты не предоставляются. Например, отправка файлов.
- Коа более модульный.
- Koa меньше полагается на промежуточное ПО
- Например, вместо промежуточного программного обеспечения «анализа тела» вы должны использовать функцию анализа тела.
- Koa абстрагирует запрос/ответ узла
- Меньше хакерства.
- Лучший пользовательский опыт.
- Правильная обработка потока.
ПЛЮСЫ
- Поддержка генераторов с нуля. Использование генераторов (передовая функция даже для Node.js) очистит ваш код от беспорядка, вызванного всеми этими обратными вызовами; сделать ваш код более управляемым.
- Команда разработчиков имеет проверенный послужной список
- Koa разработан командой разработчиков широко используемого фреймворка node.js (express.js).
- Чрезвычайно легкий
- Koa очень легкий, всего 550 строк кода.
- ключевые слова sync/await поддерживаются и выходят за рамки функций генератора
- Функции генераторов, конечно, огромный плюс, но в то время команда Koa превзошла функции генерации и перешла к программированию в стиле async/await. Это сделало Koa лучшим фреймворком на рынке.
МИНУСЫ
- Сообщество относительно небольшое.
- Несовместимо с ПО промежуточного слоя экспресс-стиля.
- Koa использует генераторы, которые несовместимы с промежуточным ПО Node.js любого другого типа.
Поговорите с нашими разработчиками