为 Express 开发模板引擎
使用 app.engine(ext, callback)
方法创建自己的模板引擎
ext
指的是文件扩展名callback
是模板引擎函数,函数参数为:- 文件的位置
- 选项对象
- 回调函数
下面的代码是一个实现用于渲染文件的非常简单的模板引擎的示例 .lhc
。
js
app.engine('lhc', function (filePath, options, callback) { // define the template engine
console.log(options.message, 'options');
fs.readFile(filePath, function (err, content) {
if (err) return callback(err)
// this is an extremely simple template engine
var rendered = content.toString()
.replace('#title#', '<div>' + options.title + '</div>')
.replace('#message#', '<h1>' + options.message + '</h1>')
return callback(null, rendered)
})
})
您的应用现在将能够呈现 .lhc
文件。index.lhc
在目录中创建一个名为的文件 views
,内容如下。
text
#title#
#message#
然后,在您的应用中创建以下路由。
js
app.get('/', function (req, res) {
res.render('index', { title: 'Hey', message: 'Hello there!' })
})