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.
No, just a different take on similar functionality now that async functions allow us to write code with fewer callbacks. Connect is equally capable, and some may still prefer it, it's up to what you prefer.
No - out of the box Koa has no form of routing, however many routing middleware are available: https://github.com/koajs/koa/wiki
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.
Koa uses its own custom objects:
These objects abstract node's
res objects with convenience methods and getters/setters.
Generally, properties added to these objects must obey the following rules:
ctx.response's properties are delegated to
If it's a getter/setter, then both the getter and the setter will strictly
correspond to either
Please think about these rules before suggesting additional properties.