Express中使用模板引擎
在express中设置模板引擎。
定义模板引擎
var express = require('express');
var app = express();
app.set('views', './app/views'); // 设置views的默认路径
app.set('view engine', 'ejs'); // 设置引擎扩展名
app.engine('.ejs', require('ejs').__express); // 注册ejs模板引擎
以上方法可以注册指定的ejs模板引擎。 当然,如果你想使用html后缀的文件,可以做以下修改,这样就可以支持了。
app.engine('.html', require('ejs').__express);
app.set('view engine', 'html');
添加变量
我们可以使用app对象的locals属性来添加,比如:
app.locals.name = 'App';
app.locals.age = 13;
这些变量会在render模板的时候填充到页面中去。
渲染模板并显示
我们可以使用render方法来渲染页面,对应的api是,
app.render(view, [locals], callback)
view: 模板文件名 [locals]:
一个locals对象(即在app.locals中定义的locals对象) callback: 回调函数,在模板呈现后执行。第一个参数,err错误对象,第二个参数是 html,即呈现后的模板字符串。
1.直接调用app对象的render方法
app.get('/', function(req, res) {
res.render('index');
});
当然,前面的locals,也可以通过render的第二个参数直接传入。
2.利用render的回调方法
app.get('/', function(req, res) {
res.render('index', function(err, html) {
res.send(html);
});
});
同样的,像以下这样直接传入也是可以的。
app.render('/', { name: 'aaa' }, function(err, html){
// ...
});