访问脚本标签上的 EJS 变量

Accessing EJS variable on script tag

我正在构建一个 node.js 应用程序,我想从服务器访问一个数组,我发现我无法访问脚本标签上的数组。

我搜索了解决方案并找到了 JSON.stringify 的解决方案,但它不起作用并且 returns 出现错误。

带有express的服务器端:

module.exports.index = async (req, res) => {
    const coffepoints = await CoffePoint.find({});
    res.render('coffepoints/index', { coffepoints })
}

客户端:

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

如何访问脚本标签中的数组?

您可以简单地使用 <%= varName %> 从 express

访问它
<script>
    var myVal = <%= someVal %>
</script>

你在这里做的实际上叫做 includes,它是 EJS 中的部分。

<script> const coffepoints = <% - JSON.stringify(campgrounds) %></script>
                               ^^^

您想显示或输出一个 EJS 变量。因此,您将使用 <%= 标签。

<script> const coffepoints = <%= JSON.stringify(campgrounds) %></script>

您可以查看 EJS 文档 here,其中包括 EJS 中所有可用的标签。