什么是EJS


本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/01/13/%E4%BB%80%E4%B9%88%E6%98%AFEJS/

摘要

本文主要讲述了:

  1. 什么是 EJS
  2. 示例

正文

什么是 EJS

EJS,全称是 Embedded JavaScript templates(嵌入式 JavaScript 模板语言)

不再需要自己拼接字符串,基于 EJS,你可以十分轻松地生成 HTML

EJS 可以在浏览器里使用,也可以在 nodejs 里使用

示例

示例:注释

1
2
3
const ejs = require('ejs');
const html = ejs.render('<div><%# 我是注释 %></div>');
console.log(html);

输出:

1
<div></div>

示例:小脚本标签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const ejs = require('ejs');
const templteString = [
'<% if (username) {%>',
'<div>hello, <%= username%></div>',
'<% } else { %>',
'<div>hello, guest</div>',
'<% } %>',
];
console.log(
ejs.render(templteString.join(''), {
username: 'jsweibo',
})
);
console.log(
ejs.render(templteString.join(''), {
username: '',
})
);

输出:

1
2
<div>hello, jsweibo</div>
<div>hello, guest</div>

示例:不转义就输出

1
2
3
4
5
const ejs = require('ejs');
const html = ejs.render('<div><%- str %></div>', {
str: '<script>alert(new Date());</script>',
});
console.log(html);

输出:

1
<div><script>alert(new Date());</script></div>

示例:转义后再输出

1
2
3
4
5
const ejs = require('ejs');
const html = ejs.render('<div><%= str %></div>', {
str: '<script>alert(new Date());</script>',
});
console.log(html);

输出:

1
<div><script>alert(new Date());</script></div>

参考资料

本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/01/13/%E4%BB%80%E4%B9%88%E6%98%AFEJS/


本文对你有帮助?请支持我


支付宝
微信