koa-views-templates
v1.0.1
Published
Template rendering middleware for koa
Downloads
4
Maintainers
Readme
koa-views
Template rendering middleware for koa.
Note: This master branch is for koa's upcoming version
koa@2
. Take a look at thev1.x
branch forkoa@1
.
Note: This is a fork of the koa-views to add support for templates.
Installation
$ npm install koa-views-templates
Templating engines
koa-views
is using consolidate under the hood.
Example
var views = require('koa-views-templates');
// Must be used before any router is used
app.use(views(__dirname + '/views', {
map: {
html: 'underscore'
},
template: 'mytemplate.ejs'
}));
app.use(async function (ctx, next) {
ctx.state = {
session: this.session,
title: 'app'
};
await ctx.render('user', {
user: 'John'
});
});
For more examples you can take a look at the tests.
API
views(root, opts)
root
: Where your views are located. Must be an absolute path. All rendered views must be relative to this pathopts
(optional)opts.extension
: Default extension for your views
Instead of providing the full file extension you can omit it.
app.use(async function (ctx) {
await ctx.render('user.jade')
})
vs.
app.use(views(__dirname, { extension: 'jade' }))
app.use(async function (ctx) {
await ctx.render('user')
})
opts.map
: Map a file extension to an engine
In this example, each file ending with .html
will get rendered using the nunjucks
templating engine.
app.use(views(__dirname, { map: {html: 'nunjucks' }}))
// render `user.html` with nunjucks
app.use(async function (ctx) {
await ctx.render('user.html')
})
Debug
Set the DEBUG
environment variable to koa-views
when starting your server.
$ DEBUG=koa-views