Views and Rendering

When developing websites it is critical to be able to template HTML so that it can be loaded with data and sent to the browser. To make this process as easy as possible on the developer Kado has a View system similar to that used by the Database system. Also, Kado comes with the Mustache templating system built-in and easy to activate.

Let's go over some examples for activating the view system first.

We will first assume you have an app.js and have at least looked out our Hello World guide, if not take a peek. Next, we take a look a few lines of code that will activate our view engine.

// add a view engine
const View = require('kado/lib/View')
const viewFolder = fs.path.join(__dirname, 'view')
app.view.addEngine('mustache', new View.ViewMustache(viewFolder))
app.view.activateEngine('mustache')

Now, notice we include the View Kado library which comes with our View.ViewMustache engine. The engine ties directly into the built in Mustache library. After that, it is a matter of establishing a view folder, ours is <project root>/view and then passing the view system to the application. Finally, activate the view system, so we can render with it.

Next, let us make a simple template at view/index.html and with the following:

<!doctype HTML>
<html lang="en">
<body>
<h1>{{test}}</h1>
</body>
</html>

Now, make a route to get to this file from your app.js or a Route object.

app.get('/', (req, res) => { res.render('index', { test: 'Hi!' })})

This route will send the URI / to our method, and then we render the template index with the parameter { test: 'Hi!' }. Provided this works correctly you will see a large print of Hi! on the screen after running your app using.

$ node app

Make sure and run this command from your project root folder.

To see more details on working with mustache see Mustache.