如何将数组从节点传递到 .js 文件 (pugJs)

How to pass a array from node to .js file (pugJs)

我正在尝试渲染图表(使用 ChartJS)作为明确的回应。图表的数据点作为数组存储在节点中。我必须将它传递给 chartJS 函数。

为此,我目前正在使用 express 的 res.render() 方法。我已经设法将值传递给 .pug 文件。现在我必须将数据点从 .pug 文件移动到 .js file/ChartJS 函数。

我该如何做到这一点?这是正确的做法吗?

我期望的最终结果是 node 中存储的数组值必须反映在具有 ChartJS 函数的 .js 文件中。

我会感谢你的任何形式的 help/advice。

谢谢!!

您需要使用 unescaped string interpolation 和 stringify 将您的 pug 变量转换为客户端浏览器变量:

var arrayForChart = !{JSON.stringify(arrayInPug)};

如果 express/pug 中的变量是 ['a', 'b', 'c'] 那么这将输出:

var arrayForChart = ['a', 'b', 'c'];

如果没有 stringify 你会得到这样的东西,它只会在浏览器中抛出一个错误,因为它无效 JavaScript:

var arrayForChart = [Object object];