在脚本中编写 ejs 时出现错误 'Expression expected'

writing ejs in a script is giving me the error 'Expression expected'

我的 show.ejs 文件中有一个脚本标记,并且有以下行:

<script>
    const post = <%- JSON.stringify(post) %>
</script>

我在开始和结束 ejs 标签上都收到 'Error Expected' 错误。我想知道为什么会出现此错误,如果我正在做的事情是不允许的。

我对 VS 代码也有同样的问题,如果你使用 VS,你需要在 html 这一行

的配置中添加到 settings.json 的末尾
"html.validate.scripts": false,

在右下角找到html

然后找到配置HTML语言 并将行添加到 json 文件的末尾

有2种可选方式。

1)

更改 EJS 的全局分隔符。

const ejs = require("ejs");

ejs.delimiter = '/';
ejs.openDelimiter = '[';
ejs.closeDelimiter = ']';

更新您的脚本。

<script>
const post= [/- JSON.stringify(post) /];
</script>

2)

将此 属性 添加到 VSCode 中的 settings.json。

"html.validate.scripts": false

更改 EJS 的全局分隔符。

const ejs = require("ejs");

ejs.delimiter = '?';
ejs.openDelimiter = '[';
ejs.closeDelimiter = ']';

更新您的脚本。

<script>
const post= [?- JSON.stringify(post) ?];
</script>

注意:自动格式将以两种方式正常工作。

注意:我更喜欢第一个,因为我可以同时使用自动格式和脚本验证,而且我不需要任何 EJS 扩展。