Express js设置视图模板选项
在Express.js应用程序注册模板引擎ejs
你只需添加一行
app.set('view engine', 'ejs');
如何指定额外的选项支持的ejs https://github.com/mde/ejs#options (例如,我想rmWhitespace: true
),以便每个res.render()
将使用它们?
更新:当前设置:
... app.set('view engine', 'ejs'); app.set('views', __dirname + '/views'); app.locals.rmWhitespace = true; app.get('/', function (req, res) { res.render('root', { name: 'Test' }); });
并在`./views/root.ejs'
<html> <body> Hello, <%= name -%> <br/> </body> </html>
您的原始语法现在起作用:
app.set('view engine', 'ejs'); app.locals.rmWhitespace = true;
在您提出问题时,由于v2.3.4中已修复的错误,它不起作用: https : //github.com/mde/ejs/commit/ea0fa32e27a13b9b77970b312699ff117aa56e59
没有这个修补程序, rmWhitespace
不被认为是一个“选项”,因此不会被data
和cbOptsInData
方法放入opts
。
从文档: ejs.render(str, data, options);
app.get('/', function (req, res) { res.render('root', { name: 'Test' }, rmWhitespace); });
我用同样的问题使用swig,ejs的替代品。 我想你可以直接要求ejs并设置它的选项。 例如 :
var ejs = require('ejs'); ... app.set('view engine', 'ejs'); ejs.rmWhitespace = true; ...
你可以设置一个中间件
app.use(function(req, res, next){ res.locals.rmWhitespace = true; next(); });
设置当地人作为res.locals
在这里设置文档