Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kaelzhang/express-to-koa
Use express middlewares in Koa2, the one that really works.
https://github.com/kaelzhang/express-to-koa
converter express koa koa2 middleware
Last synced: 2 months ago
JSON representation
Use express middlewares in Koa2, the one that really works.
- Host: GitHub
- URL: https://github.com/kaelzhang/express-to-koa
- Owner: kaelzhang
- License: other
- Created: 2017-03-03T12:30:55.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2019-07-05T02:40:00.000Z (over 5 years ago)
- Last Synced: 2024-04-15T12:32:58.344Z (8 months ago)
- Topics: converter, express, koa, koa2, middleware
- Language: JavaScript
- Homepage:
- Size: 32.2 KB
- Stars: 20
- Watchers: 4
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/kaelzhang/express-to-koa.svg?branch=master)](https://travis-ci.org/kaelzhang/express-to-koa)
[![Coverage](https://codecov.io/gh/kaelzhang/express-to-koa/branch/master/graph/badge.svg)](https://codecov.io/gh/kaelzhang/express-to-koa)# express-to-koa
Use express middlewares in Koa2 (not support koa1 for now), the one that **REALLY WORKS**.
- Handle koa2 http status code, which fixes the common issue that we always get 404 with [koa-connect](https://www.npmjs.com/package/koa-connect)
- Handle express middlewares that contains `.pipe(res)`, such as `express.static` which based on [`send`](https://www.npmjs.com/package/send)## Usage
```js
const e2k = require('express-to-koa')// Some express middleware
const devMiddleware = require('webpack-dev-middleware')(compiler, {
publicPath,
quiet: true
})const app = new Koa()
app.use(e2k(devMiddleware))
```## What Kind of Express Middlewares are Supported?
NEARLY **ALL** express middlewares built with best practices.
**TL;NR**
`express-to-koa` does not support all arbitrary express middlewares, but only for those who only uses **Express-Independent** APIs like `res.write` and `res.end`, i.e. the APIs that node [http.ServerResponse](https://nodejs.org/dist/latest-v7.x/docs/api/http.html#http_class_http_serverresponse) provides.
However, if a middleware uses APIs like `res.send` or something, `express-to-koa` will do far too much work to convert those logic to koa2, which is not easier than creating both express and koa2 from 0 to 1.
So, it is a good practice to write framework-agnostic middlewares or libraries.
## Supported Middlewares
- [webpack-dev-middleware](https://www.npmjs.com/package/webpack-dev-middleware)
- [webpack-hot-middleware](https://www.npmjs.com/package/webpack-hot-middleware)
- [next.getRequestHandler()](https://github.com/zeit/next.js/#custom-server-and-routing)
- Other middlewares which are waiting for you to add to the README. Any contributions are welcome.## License
MIT