為 Express 開發模板引擎
阿新 • • 發佈:2017-11-22
logs ons expr new get 函數 路徑 view 所在
if (err) return callback(new Error(err));
// 這是一個功能極其簡單的模板引擎
var rendered = content.toString().replace(‘#title#‘, ‘‘+ options.title +‘ ‘)
.replace(‘#message#‘, ‘
return callback(null, rendered);
})
});
app.set(‘views‘, ‘./views‘); // 指定視圖所在的位置
app.set(‘view engine‘, ‘ntl‘); // 註冊模板引擎
現在 “.ntl” 文件就可以被正確地渲染了。接下來在 views 目錄下創建一個名為 “index.ntl” 的模板文件,文件內容如下:
為 Express 開發模板引擎
通過 app.engine(ext, callback) 方法即可創建一個你自己的模板引擎。其中,ext 指的是文件擴展名、callback 是模板引擎的主函數,接受文件路徑、參數對象和回調函數作為其參數。
下面的代碼演示的是一個非常簡單的能夠渲染 “.ntl” 文件的模板引擎。
var fs = require(‘fs‘); // 此模板引擎依賴 fs 模塊
app.engine(‘ntl‘, function (filePath, options, callback) { // 定義模板引擎
fs.readFile(filePath, function (err, content) {
// 這是一個功能極其簡單的模板引擎
var rendered = content.toString().replace(‘#title#‘, ‘
.replace(‘#message#‘, ‘
‘+ options.message +‘
‘);return callback(null, rendered);
})
});
app.set(‘views‘, ‘./views‘); // 指定視圖所在的位置
app.set(‘view engine‘, ‘ntl‘); // 註冊模板引擎
title
message
然後,按下面的示例創建一下路由:
app.get(‘/‘, function (req, res) {
res.render(‘index‘, { title: ‘Hey‘, message: ‘Hello there!‘});
})
訪問網站首頁就能看到由 “index.ntl” 文件渲染出來的 HTML 頁面了。
為 Express 開發模板引擎