ejs模板引擎上下文中转义和未转义的值的含义?

时间:2020-10-11 04:38:11

标签: javascript node.js ejs

<%=将值输出到模板中(转义HTML) <%-将未转义的值输出到模板中

这两行分别表示“转义”和“未转义”这个词是什么意思?

1 个答案:

答案 0 :(得分:0)

让我给你看一个简单的例子。

比方说,您已将数据存储在数据库中,并希望在View ejs页面中呈现数据。示例:

x = "<p>This is a paragraph</p>"

现在将这些行添加到您的ejs页面中

<%= x %>
<%- x %>

您将看到此

<p>This is a paragraph</p> 
This is a paragraph

如您所见,<%=标签对html标签进行了转义,并且不允许对其进行翻译。
<%-标签相反,在html中,HTML被翻译(未转义),您会看到想要的结果。

<%=标签出于安全原因转义了该代码。如果要使用<%-标记,则必须确定存储在数据库中的数据,并稍后再呈现它们。

考虑这些数据

x = "<script>alert('You are in danger!')</script>"

并尝试以这种方式呈现

<%- x %>

猜猜是什么!您将看到一条很好的警报消息,通知您,如果不确定数据是否有危险,就很危险。

希望我能帮到你。