Search engines should be your first resort before posting open-ended questions.
From the Koa docs:
Koa vs Express
Philosophically, Koa aims to "fix and replace node", whereas Express "augments node". Koa uses co to rid apps of callback
hell and simplify error handling. It exposes its own this.request
and
this.response
objects instead of node's req
and res
objects.
Express, on the other hand, augments node's req
and res
objects with
additional properties and methods and includes many other "framework"
features, such as routing and templating, which Koa does not.
Thus, Koa can be viewed as an abstraction of node.js's http modules,
where as Express is an application framework for node.js.
...
Does Koa replace Express?
It's more like Connect, but a lot of the Express goodies were moved to
the middleware level in Koa to help form a stronger foundation. This
makes middleware more enjoyable and less error-prone to write, for the
entire stack, not just the end application code.
Typically many middleware would re-implement similar features, or even
worse incorrectly implement them, when features like signed cookie
secrets among others are typically application-specific, not
middleware specific.
...
Why isn't Koa just Express 4.0?
Koa is a pretty large departure from what people know about Express,
the design is fundamentally much different, so the migration from
Express 3.0 to this Express 4.0 would effectively mean rewriting the
entire application, so we thought it would be more appropriate to
create a new library.