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不被认为是一个“选项”,因此不会被datacbOptsInData方法放入opts

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

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

http://ejs.co/

我用同样的问题使用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

在这里设置文档