Этот документ может быть устаревшей по отношению к документации на английском языке . Для получения последних обновлений , пожалуйста, обратитесь к документации на английском языке.
This document might be outdated relative to the documentation in English. For the latest updates, please refer the documentation in English.
Developing template engines for Express
Use the app.engine(ext, callback)
method to create your own template engine. ext
refers to the file extension, callback
is the template engine function which accepts the location of the file, the options object, and the callback function, as its parameters.
The following is an example of implementing a very simple template engine for rendering “.ntl” files.
var fs = require('fs'); // this engine requires the fs module
app.engine('ntl', function (filePath, options, callback) { // define the template engine
fs.readFile(filePath, function (err, content) {
if (err) throw new Error(err);
// this is an extremely simple template engine
var rendered = content.toString().replace('#title#', '<title>'+ options.title +'</title>')
.replace('#message#', '<h1>'+ options.message +'</h1>');
return callback(null, rendered);
})
});
app.set('views', './views'); // specify the views directory
app.set('view engine', 'ntl'); // register the template engine
Your app will now be able to render “.ntl” files. Create a file named “index.ntl” in the views directory with the following content.
#title#
#message#
Then, create the following route in your app.
app.get('/', function (req, res) {
res.render('index', { title: 'Hey', message: 'Hello there!'});
})
On making a request to the home page, “index.ntl” will be rendered as HTML.