Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从Node/Express传递到前端Javascript_Javascript_Node.js_Express_Chart.js_Ejs - Fatal编程技术网

将数据从Node/Express传递到前端Javascript

将数据从Node/Express传递到前端Javascript,javascript,node.js,express,chart.js,ejs,Javascript,Node.js,Express,Chart.js,Ejs,我不确定这到底是如何工作的,我无法从搜索中找到答案。我正在使用一个节点和express服务器,并且一直在将数据毫无问题地传递到我的前端ejs。现在,我正在尝试在前端实现charts.js,这要求数据位于前端javascript文件中。我知道要将数据传递到我的ejs文件,我会使用以下方法: res.render("dashboard", {data: data}); 为了在ejs文件中显示数据,我使用 <%= data %> 然后呈现ejs文件,并将数据传递到ejs文件中使用的前

我不确定这到底是如何工作的,我无法从搜索中找到答案。我正在使用一个节点和express服务器,并且一直在将数据毫无问题地传递到我的前端ejs。现在,我正在尝试在前端实现charts.js,这要求数据位于前端javascript文件中。我知道要将数据传递到我的ejs文件,我会使用以下方法:

res.render("dashboard", {data: data});
为了在ejs文件中显示数据,我使用

<%= data %> 
然后呈现ejs文件,并将数据传递到ejs文件中使用的前端javascript文件:

let data = <%= (data array passed from the node server here) %>
let数据=
当然,这不是编写代码的正确方法,但这是我试图实现的基本逻辑


我相信这很简单,但我似乎无法在我的上下文中找到答案。有什么资源可以让我学会做我想做的事情吗?谢谢。

您不能用HTML文档和单独的JavaScript文件来响应单个请求

因此,您需要:

  • 将数据存储在某个地方,并在一个单独的端点中提供一些生成的JavaScript,并且有一个机制来确定在发出请求时提供哪些数据。(注意:这太复杂了,不要这样做。)
  • 元素内的HTML文档中生成JavaScript内联。(您需要将数据正确地转义为JS,以确保不受XSS的约束)
  • 将数据输出到HTML文档中(例如,使用
    data-*
    属性或
    元素),并使用静态JavaScript读取数据
  • 同样,使用一个单独的端点:提供包含数据的JSON,并使用Ajax从静态JS文件读取数据。(同样,您需要一种方法来确定为该特定请求发送哪些数据)

非常感谢您的帮助,使用第三种方法传递数据似乎很有效。谢谢。数据似乎传递得很好,但我遇到了这样一个问题:当我这样做时:data transactions=“”整个数组将转换为一个长字符串,而不是数组,我无法在javascript文件中将其作为单独的数字进行解析。当这些数据输入到html文件中时,我是否被困在一个字符串中?否则,将脚本直接放入ejs文件也可以,但这是最佳实践吗?谢谢。在将其放入属性值之前将其转换为JSON,然后用JS解析。
let data = <%= (data array passed from the node server here) %>