改变express + node.js + ejs的代码包装types
在客户端ejs中,我使用[% code %]
代替<% code %>
来标记ejs代码,但是我想在express服务器端执行相同的操作。 在客户端,我会做类似var template = new EJS({text: template_src, type:'['});
这是我的节点代码:
app.set('view engine', 'ejs'); app.register('.html', require('ejs')); app.get('/', function(req, res){ res.render('index.html', { title: 'My Site' }); });
你在哪里设置“types”参数,所以我可以改变这个选项
从EJS的github页面:
自定义标签也可以全局应用:
var ejs = require('ejs'); ejs.open = '{{'; ejs.close = '}}';
您需要做的唯一一件事情就是在快速应用程序的开始处复制这些行,这就是全局应用更改(将打开和closures标记更改为任何您想要的)。
更新截至2016年7月20日的最新版本
截至最新版本的EJS,不能再使用自定义标签(请参阅https://github.com/mde/ejs/issues/55 )。 你所能做的就是将分隔符从默认%
改为其他( delimiter
选项)。 有关于重新启用这个的谈话。 见https://github.com/mde/ejs/issues/88和https://github.com/mde/ejs/issues/115
如果你使用快递:
app.set('view options', { open: '{{', close: '}}' });
ejs v2。*使用不同的选项:
var ejs = require('ejs'), users = ['geddy', 'neil', 'alex']; // Just one template ejs.render('<?= users.join(" | "); ?>', {users: users}, {delimiter: '?'}); // => 'geddy | neil | alex' // Or globally ejs.delimiter = '$'; ejs.render('<$= users.join(" | "); $>', {users: users}); // => 'geddy | neil | alex'
您不能replace<
和>
字符。
- 通过护照登记。authentication
- 在快速框架中的会话中得到奇怪的错误
- Express.compress和移动设备
- 我如何确保在响应传入的请求(Swagger / Express)之前已经返回一个承诺,
- 带有nodejs jade和ajax的静态导航栏和页脚
- 问题获取Node.js Express 3.x模板inheritance与Swig通过consolidate.js
- ExpressJS和Mongoose REST API结构:最佳实践?
- Browserify不会提出要求
- 使用react-hot-loader v3和webpack-hot-middleware时,error development没有定义错误