Open yozman opened 9 years ago
etpl 的 express 插件在开发计划中~ 如果目前情况下需要在 express 中使用 etpl 的话,可以考虑先手动调用 etpl.compile
然后 res.end(etpl.render(target))
的方式来渲染
http://expressjs.com/advanced/developing-template-engines.html
根据 express 文档编写的
/***
* 编写模块
* /service/etpl.js
*/
var ET = require('etpl');
var FS = require('fs');
// 模板引擎初始化
exports.init = function ( EXP ) {
// 扩展模板引擎
EXP.engine('etpl', function (filePath, options, callback) {
FS.readFile(filePath, function (err, content) {
if (err) return callback(new Error(err));
var render = ET.compile(content.toString());
return callback(null, render(options));
});
});
// 返回渲染文件后缀
return 'etpl';
}
/***
* 引用模块
* /app.js
*/
var EXP = require('express');
var ETpl = require('./service/etpl');
var app = EXP();
// 设置模板引擎
app.set('view engine', ETpl.init(app) );
...
// 启动服务器
app.listen(3000);
赞~
不过要使用完整的 etpl 功能,比如 母版 的话 简单的编译单个模版文件还不成 还需要考虑额外的模版引入,另外每个模版之间的隔离问题也需要考虑下(不然可能 target 会有重复)
这个需求还开不开发啦?
最新版的etpl已经有node端渲染的支持,直接自己封装一下用呗?
app.set('view engine', 'etpl'); 没有用啊, 能否开发适配 express 的版本?