Как Коа помогает избежать «мартышек» и как «Хапи» или «Экспресс» не делают то же самое? - PullRequest
0 голосов
/ 15 сентября 2018

Мне трудно понять, почему люди проповедуют Koa как решение проблемы «исправления обезьян» (в то время как нужно модифицировать предварительно упакованный код).(см. https://www.quora.com/Should-I-learn-Express-js-or-Koa-js-for-node/answer/Yvan-Scher?share=1 или http://blog.onclickinnovations.com/koa-js/).

Чем Коа является особенным в этом отношении? Как Хапи и Экспресс не являются такими же?

1 Ответ

0 голосов
/ 15 сентября 2018

Проработав Koa в течение 2 лет, а недавно и несколько файлов express.js, я натолкнулся на один большой пример этого.

Скажем, у вас есть контроллер, который генерирует ответ, и вы хотите перехватить этот ответ исделайте что-нибудь с ним (например: gzip или конвертируйте его в какой-нибудь другой формат).

Это легко работает с koa, потому что вы можете просто сделать что-то вроде этого:

function myMw(ctx, next) {
   await next();
   ctx.response.body = gzip(ctx.response.body);
}

выше вымышленный пример, но вы поняли идею.

С выражением вашего кода это выглядит как абсолютный мусор.Легко увидеть в промежуточном программном обеспечении Express GZIP:

https://github.com/expressjs/compression/blob/master/index.js

Это связано с тем фактом, что промежуточное программное обеспечение Express обеспечивает прямой доступ к сокету HTTP для записи ответов (с send()).

Я подозреваю, что именно отсюда и возникает это чувство.Честно говоря, я не понимаю, почему люди все еще используют Экспресс.В основном привычные и огромные количества уроков, которые я считаю.Экспресс был великолепен, но сегодня это больно.

...