将数据从节点/表达式传递到前端Javascript

问题描述 投票:0回答:1

我不确定这将如何正常工作,并且无法通过搜索找到答案。我正在使用节点和Express服务器,并且一直将数据无问题地传递到前端ejs。现在,我正在尝试在前端中实现Charts.js,这需要将数据存储在前端javascript文件中。我知道要将数据传递到我的ejs文件,我使用类似这样的东西:

res.render("dashboard", {data: data});

并显示ejs文件中的数据,我使用

<%= data %> 

现在,我想做的基本上是同一件事,但是我希望将数据传递到javascript文件中,同时仍显示ejs文件,而不是将数据传递到ejs文件中。现在,我似乎无法弄清楚如何将数据存储在快速服务器中并将其返回到前端javascript文件中。我正在寻找的流程将是这样的:

在节点中:

data = []:
res.render("dashboard", {data: data});

然后呈现ejs文件,并将数据传递到ejs文件中正在使用的前端javascript文件中:

let data = <%= (data array passed from the node server here) %>

当然,这不是编写代码的正确方法,但这是我尝试实现的基本逻辑。

我确信这很简单,但是我似乎无法在这里找到答案。有什么资源可以学习做自己想做的事情?谢谢。

javascript node.js express chart.js ejs
1个回答
0
投票

您无法同时使用HTML文档和单独的JavaScript文件来响应单个请求。

所以您需要:

  • 将数据存储在某个地方,并在单独的端点中提供一些生成的JavaScript,并具有一种机制,该机制可在发出请求时标识要提供的哪个数据。 (NB:这非常复杂。不要这样做。)
  • <script>元素内的HTML文档中生成JavaScript内联。 (您需要以JS格式正确转义数据,以确保您不受XSS的约束。)>
  • 将数据输出到HTML文档中(例如,具有data-*属性或<meta>元素),并使用静态JavaScript读取。
  • 同样,使用单独的端点:使用其中的数据提供JSON,并使用Ajax从静态JS文件中读取。 (同样,您将需要一种方法来确定要为该特定请求发送的数据)。
© www.soinside.com 2019 - 2024. All rights reserved.