Express 開發(fā)模板引擎

2018-09-23 10:44 更新

為 Express 開發(fā)模板引擎

通過 app.engine(ext, callback) 方法即可創(chuàng)建一個(gè)你自己的模板引擎。其中,ext 指的是文件擴(kuò)展名、callback 是模板引擎的主函數(shù),接受文件路徑、參數(shù)對(duì)象和回調(diào)函數(shù)作為其參數(shù)。

下面的代碼演示的是一個(gè)非常簡單的能夠渲染 “.ntl” 文件的模板引擎。

var fs = require('fs'); // 此模板引擎依賴 fs 模塊
app.engine('ntl', function (filePath, options, callback) { // 定義模板引擎
  fs.readFile(filePath, function (err, content) {
    if (err) return callback(new Error(err));
    // 這是一個(gè)功能極其簡單的模板引擎
    var rendered = content.toString().replace('#title#', '<title>'+ options.title +'</title>')
    .replace('#message#', '<h1>'+ options.message +'</h1>');
    return callback(null, rendered);
  })
});
app.set('views', './views'); // 指定視圖所在的位置
app.set('view engine', 'ntl'); // 注冊(cè)模板引擎

現(xiàn)在 “.ntl” 文件就可以被正確地渲染了。接下來在 views 目錄下創(chuàng)建一個(gè)名為 “index.ntl” 的模板文件,文件內(nèi)容如下:

#title#
#message#

然后,按下面的示例創(chuàng)建一下路由:

app.get('/', function (req, res) {
  res.render('index', { title: 'Hey', message: 'Hello there!'});
})

訪問網(wǎng)站首頁就能看到由 “index.ntl” 文件渲染出來的 HTML 頁面了。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)