标签:
ejs是Embedded JavaScript的简写
1.创建一个ejs模板
var ejs = require(‘ejs‘);
var template = ‘<%= message %>‘;
var context = {message: ‘Hello template!‘};
console.log(ejs.render(template, context));
通过ejs.render(template, data)就可以将数据传递给模板,从而渲染展示出页面
需要注意的是:data变量名是自定义的,但是不可以使用:cache,filename,scope,debug,compileDebug,client,open,close这些名称
这些名称是模板引擎设置相关的保留值
2.字符转义:ejs.render()传递数据时会将一些特定的字符进行转义,以防止脚本攻击
var ejs = require(‘ejs‘);
var template = ‘<%= message %>‘;
var context = {message: "<script>alert(‘XSS attack!‘);</script>"};
console.log(ejs.render(template, context));
打印结果
<script>alert(‘XSS attack!‘);</script>
另:如果你确定传递的数据是可信的,则可以在模板标签中用<%-替代<%=,这样ejs就不会将特定的字符进行转义了
var ejs = require(‘ejs‘);
var template = ‘<%- message %>‘;
var context = {
message: "<script>alert(‘Trusted JavaScript!‘);</script>"};
}
console.log(ejs.render(template, context));
这样alert的弹窗效果就出来了
3.自定义ejs模板的标签符号
var ejs = require(‘ejs‘);
ejs.open = ‘{{‘
ejs.close = ‘}}‘
var template = ‘{{= message }}‘;
var context = {message: ‘Hello template!‘};
console.log(ejs.render(template, context));
标签:
原文地址:http://my.oschina.net/lhplj/blog/359981