Express js设置视图模板选项

时间:2015-06-01 12:06:17

标签: node.js express ejs

在Express.js应用程序中注册模板引擎csv,你只需添加一行

ejs

如何指定ejs https://github.com/mde/ejs#options支持的其他选项(例如,我想要app.set('view engine', 'ejs'); ),以便每个rmWhitespace: true都可以使用它们?

更新: 当前设置:

res.render()

和`./views/root.ejs'

...
app.set('view engine', 'ejs');
app.set('views', __dirname + '/views');
app.locals.rmWhitespace = true;

app.get('/', function (req, res) {
    res.render('root', { name: 'Test' });
});

4 个答案:

答案 0 :(得分:1)

来自文档:ejs.render(str, data, options);

app.get('/', function (req, res) {
    res.render('root', { name: 'Test' }, rmWhitespace);
});

http://ejs.co/

答案 1 :(得分:1)

您的原始语法现在有效:

app.set('view engine', 'ejs');
app.locals.rmWhitespace = true;

由于v2.3.4中修复了一个错误,因此在您提出问题时它无法正常工作:https://github.com/mde/ejs/commit/ea0fa32e27a13b9b77970b312699ff117aa56e59

如果没有此修复程序,rmWhitespace未被识别为“选项”,因此data未被optsExt.define('User', { extend: 'Ext.data.Model', fields: [ {name: 'name', type: 'string'}, {name: 'phoneNumber', type: 'string'} ] }); 拉出var data = { users: [ { name: 'Ed Spencer', phoneNumber: '555 1234' }, { name: 'Abe Elias', phoneNumber: '666 1234' } ] }; 方法

答案 2 :(得分:0)

我使用swig(ejs的替代品)也遇到了同样的问题。 我想你可以直接要求ejs并设置它的选项。例如:

buildings

答案 3 :(得分:0)

您可以设置中间件

app.use(function(req, res, next){
 res.locals.rmWhitespace = true;
 next();
});

将本地设置为res.locals

在此设置文档here