mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
Added side note about enabling gzip on Koa (#2867)
I'll share this small snippet here, it might be useful.
This commit is contained in:
parent
99c4798ff1
commit
a142848ef5
|
@ -31,3 +31,20 @@ Most of the times the default Next server will be enough but sometimes you want
|
|||
Because the Next.js server is just a node.js module you can combine it with any other part of the node.js ecosystem. in this case we are using [Koa](http://koajs.com/) to build a custom router on top of Next.
|
||||
|
||||
The example shows a server that serves the component living in `pages/a.js` when the route `/b` is requested and `pages/b.js` when the route `/a` is accessed. This is obviously a non-standard routing strategy. You can see how this custom routing is being made inside `server.js`.
|
||||
|
||||
|
||||
## Side note: Enabling gzip compression
|
||||
|
||||
The most common Koa middleware for handling the gzip compression is [compress](https://github.com/koajs/compress), but unfortunately it is currently not compatible with Next.
|
||||
`koa-compress` handles the compression of the response body by checking `res.body`, which will be empty in the case of the routes handled by Next (because Next sends and ends the response by itself).
|
||||
|
||||
If you need to enable the gzip compression, the most simple way to do so is by wrapping the express-middleware [compression](https://github.com/expressjs/compression) with [koa-connect](https://github.com/vkurchatkin/koa-connect):
|
||||
|
||||
```javascript
|
||||
const compression = require('compression');
|
||||
const koaConnect = require('koa-connect');
|
||||
|
||||
|
||||
server.use(koaConnect(compression()));
|
||||
|
||||
```
|
||||
|
|
Loading…
Reference in a new issue