Templates rendering plugin support for Fastify.
point-of-view decorates the reply interface with the view method for manage view engines that can be used to render templates responses.
Currently supports the following templates engines:
In production mode, point-of-view will heavily cache the templates file and functions, while in development will reload every time the template file and function.
Note that at least Fastify v0.13.1 is needed.
The benchmark were run with the files in the benchmark folder with the ejs engine.
The data has been taken with: autocannon -c 100 -d 5 -p 10 localhost:3000
- Express: 8.8k req/sec
- Fastify: 15.6k req/sec
npm install point-of-view --save
const fastify = require('fastify')()
fastify.register(require('point-of-view'), {
engine: {
ejs: require('ejs')
}
})
fastify.get('/', (req, reply) => {
reply.view('/templates/index.ejs', { text: 'text' })
})
fastify.listen(3000, err => {
if (err) throw err
console.log(`server listening on ${fastify.server.address().port}`)
})If you want to set a fixed templates folder, or pass some options to the template engines:
fastify.register(require('point-of-view'), {
engine: {
ejs: require('ejs')
},
templates: '/templates',
options: {}
})This project is kindly sponsored by:
Licensed under MIT.