如何在 EJS 中添加未转义的字符串化 JSON?

How to add unescaped stringified JSON in EJS?

我正在尝试在 EJS 模板中使用 JavaScript 发送 postMessage,我需要发送一个简单的字符串化 JSON 对象,如下所示:

{ "id": "1234567890" }

当我尝试在 EJS 模板中传递此对象时,双引号 (") 转义为 "。这是我的模板:

<script>
    if (window.opener) {
        window.opener.postMessage('<%= JSON.stringify(user) %>', "http://localhost:3000")
        window.close()
    }
</script>

字符串化对象变成了这个:

&#34;{&#34;id&#34;:&#34;1234567890&#34;}&#34;

如何防止特殊字符被 EJS 转义?

原来我需要将 <%= 替换为 <%- 才能使用未转义的字符。

所以我的代码必须是:

<script>
    if (window.opener) {
        window.opener.postMessage('<%- JSON.stringify(user) %>', "http://localhost:3000")
        window.close()
    }
</script>

来源:https://github.com/tj/ejs/tree/1.0.0#features