首页 > Web开发 > 详细

Express之ejs模板

时间:2014-12-24 14:54:56      阅读:562      评论:0      收藏:0      [点我收藏+]

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));

打印结果

&lt;script&gt;alert(‘XSS attack!‘);&lt;/script&gt;

另:如果你确定传递的数据是可信的,则可以在模板标签中用<%-替代<%=,这样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));






Express之ejs模板

原文:http://my.oschina.net/lhplj/blog/359981

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!