node package manager

server-render

server-render stability

npm version build status test coverage downloads js-standard-style

HTML server rendering middleware. Detects if an incoming request is requesting text/html and calls a function to render the corresponding response.

Usage

Assuming the client is a choo app:

const render = require('server-render')
const merry = require('merry')
const client = require('./client')
 
const app = merry()
app.use(render((route) => client.toString(route)))
app.start()

Caching

Sometimes you know the paths you're going to render up front, and want to cache them in a Node buffer so the reponse times are as fast as they can be.

const cache = require('server-render/cache')
const render = require('server-render')
const merry = require('merry')
const client = require('./client')
 
const routes = {
  default: '/404',
  routes: [ '/', '/bar', '/bar/baz', '/bar/:foobar' ]
}
 
const app = merry()
app.use(cache(routes, (route) => client.toString(route)))
app.start()

API

middleware = render(handler(route))

Create a new render function that takes a callback and returns a middleware function. The callback should return a string synchronously. The middleware function has the signature of (req, res, next).

middleware = cache(routes, handler(route))

Cache routes into Node buffers. Takes an object containing a .routes array of routes, and a .default value for the default route to match if no other routes could be matched.

Installation

$ npm install server-render

See Also

License

MIT