gpt4 book ai didi

node.js - 什么是 Node.js 的 Swig 模板中的自动转义?

转载 作者:搜寻专家 更新时间:2023-10-31 22:58:37 25 4
gpt4 key购买 nike

我正在尝试编写一个基于 Express 的行程应用程序。 Swig 是模板引擎。我对 Swig 的自动转义功能感到困惑。它具体有什么作用?

痛饮 documentation示例:

"Control auto-escaping of variable output from within your templates."

// myvar = '<foo>';
{% autoescape true %}{{ myvar }}{% endautoescape %}
// => <foo>
{% autoescape false %}{{ myvar }}{% endautoescape %}
// => <foo>

我的代码:

<script>

{% autoescape false %}
var all_hotels = {{ hotels | json }};
var all_restaurants = {{ restaurants | json }};
var all_things_to_do = {{ things_to_do | json }};

{% endautoescape %}

</script>

谢谢。

最佳答案

文档应该是这样的:

"Control auto-escaping of variable output from within your templates."

// myvar = '<foo>';
{% autoescape true %}{{ myvar }}{% endautoescape %}
// => &lt;foo&gt;
{% autoescape false %}{{ myvar }}{% endautoescape %}
// => <foo>

所以当 autoescape 为 true 时,它将对变量内容进行 HTML 转义。我认为这是 Swig 的默认设置。

既然你想呈现 JSON 变量,你的代码应该可以正常工作(关闭自动转义以防止 JSON 内容的 HTML 转义)。或者,您可以使用 safe过滤器:

var all_hotels = {{ hotels | safe | json }};
var all_restaurants = {{ restaurants | safe | json }};
...

关于node.js - 什么是 Node.js 的 Swig 模板中的自动转义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21806356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com