Express js 设置视图模板选项
Express js set view template options
在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>
我在使用 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
在此处设置文档here
来自文档:ejs.render(str, data, options);
app.get('/', function (req, res) {
res.render('root', { name: 'Test' }, rmWhitespace);
});
您的原始语法现在可以使用了:
app.set('view engine', 'ejs');
app.locals.rmWhitespace = true;
由于 v2.3.4 中已修复的错误,在您提出问题时它不起作用:https://github.com/mde/ejs/commit/ea0fa32e27a13b9b77970b312699ff117aa56e59
如果没有此修复,rmWhitespace
不会被识别为 "option",因此不会被 data
拉出 opts
cbOptsInData
方法。
在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>
我在使用 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
在此处设置文档here
来自文档:ejs.render(str, data, options);
app.get('/', function (req, res) {
res.render('root', { name: 'Test' }, rmWhitespace);
});
您的原始语法现在可以使用了:
app.set('view engine', 'ejs');
app.locals.rmWhitespace = true;
由于 v2.3.4 中已修复的错误,在您提出问题时它不起作用:https://github.com/mde/ejs/commit/ea0fa32e27a13b9b77970b312699ff117aa56e59
如果没有此修复,rmWhitespace
不会被识别为 "option",因此不会被 data
拉出 opts
cbOptsInData
方法。