<%=将值输出到模板中(转义HTML) <%-将未转义的值输出到模板中
这两行分别表示“转义”和“未转义”这个词是什么意思?
答案 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 %>
猜猜是什么!您将看到一条很好的警报消息,通知您,如果不确定数据是否有危险,就很危险。
希望我能帮到你。