rsnext/examples/ssr-caching
xliusstk 6c5efd7b09
Fix ssr-caching example (#12180)
cacheable-response.get expects a get(req, res) method signature:
https://www.npmjs.com/package/cacheable-response#get

Before the change:
```
curl -s  -v http://localhost:3000/blog/first 2>&1 | grep HTTP/1.1
> GET /blog/first HTTP/1.1
< HTTP/1.1 404 Not Found
```
After the change:
```
curl -s  -v http://localhost:3000/blog/first 2>&1 | grep HTTP/1.1
> GET /blog/first HTTP/1.1
< HTTP/1.1 200 OK
```

This is a partial fix of https://github.com/zeit/next.js/issues/12019 to make the example work. However it doesn't fix the error 
```
(node:62360) UnhandledPromiseRejectionWarning: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
``` , which will need a change at server/next-server.ts

See related issue:
https://github.com/zeit/next.js/discussions/11525 
https://github.com/zeit/next.js/issues/11665
2020-05-22 16:29:37 +00:00
..
pages chore: remove-redundant-example-import (#13175) 2020-05-22 16:13:37 +00:00
package.json Move syntax formatting to prettier (#7454) 2019-05-29 13:57:26 +02:00
README.md docs(ssr-caching): remove link to react-esi example (#12789) 2020-05-13 01:58:15 -04:00
server.js Fix ssr-caching example (#12180) 2020-05-22 16:29:37 +00:00

Example app where it caches SSR'ed pages in the memory

React Server Side rendering is very costly and takes a lot of server's CPU power for that. One of the best solutions for this problem is cache already rendered pages. That's what this example demonstrate.

This app uses Next's custom server and routing mode. It also uses express to handle routing and page serving.

How to use

Using create-next-app

Execute create-next-app with npm or Yarn to bootstrap the example:

npm init next-app --example ssr-caching ssr-caching-app
# or
yarn create next-app --example ssr-caching ssr-caching-app

Download manually

Download the example:

curl https://codeload.github.com/zeit/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/ssr-caching
cd ssr-caching

Install it and run:

npm install
npm run dev
# or
yarn
yarn dev

Deploy it to the cloud with Vercel (Documentation).