Skip to content

为 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!' })
})

Released under the MIT License.