Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including koa-hbs-renderer with all npm packages installed. Try it out:

var koaHbsRenderer = require("koa-hbs-renderer")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

koa-hbs-renderer v1.2.0

A Handlebars template renderer for Koa applications.


npm Node.js Build Status Coverage Dependencies Status devDependencies Status MIT licensed

A Handlebars template renderer for Koa applications.


npm install --save koa-hbs-renderer



<p>This is a template. Isn't that {{adjective}}?</p>


const Koa      = require('koa');
const path     = require('path');
const renderer = require('koa-hbs-renderer');

let app = new Koa();

  paths: {
    views: path.join(__dirname, 'views')

app.use(async (ctx, next) => {
  await ctx.render('template', {
    adjective: 'useful'



const Handlebars = require('handlebars');

let options = {
  cacheExpires:  60,
  contentTag:    'content',
  defaultLayout: 'default',
  environment:   'development',
  extension:     '.hbs',
  hbs:           Handlebars.create(),
  paths: {
    views:    path.join(__dirname, 'views'),
    layouts:  path.join(__dirname, 'layouts'),
    partials: path.join(__dirname, 'partials'),
    helpers:  path.join(__dirname, 'helpers')
  Promise:      Promise



The length of time, in seconds, to keep compiled Handlebars templates in the in-memory cache before recompilation. Defaults to 60.


The name of the block used by layouts to render views. Defaults to content, meaning views will be rendered onto layouts where {{{content}}} appears.


The name of the layout to use by default if paths.layouts is defined. Defaults to default.


The current Node.js environment, used to determine whether or not to invalidate the contents of cached templates. If set to development, cached templates will expire after the amount of time specified by cacheExpires above. Defaults to process.env.NODE_ENV.


The file extension used by template files. Defaults to .hbs.


A Handlebars environment to use. If one is not provided, one will be created via Handlebars.create when the middleware function is called.


An object literal of specified file paths. Required.


The path to a directory of view templates. Required.


The path to a directory of partial templates. If specified, all templates in the partials directory will be compiled and cached together. Optional.


The path to a directory of layout templates. Optional.


The path to a directory of helper functions contained in JavaScript files. If specified, all functions in the helpers directory will be loaded and made available to the Handlebars environment for rendering. Optional.


The constructor function to create internal Promises from. Defaults to the built-in Promise object; has been tested to work with bluebird.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free