将数据从 Node/Express 传递到前端 Javascript
Pass Data From Node/Express to Front-End Javascript
我不确定这究竟是如何工作的,而且我无法通过搜索找到我的答案。我正在使用节点和快速服务器,并且一直在毫无问题地将数据传递到我的前端 ejs。现在,我正在尝试在我的前端中实现 charts.js,这要求数据位于前端 javascript 文件中。我知道要将数据传递到我的 ejs 文件,我使用这样的东西:
res.render("dashboard", {data: data});
为了显示 ejs 文件中的数据,我使用
<%= data %>
现在,我想做的基本上是同一件事,但我不想将数据传递到 ejs 文件,而是想将它传递到 javascript 文件,同时仍然显示 ejs文件。现在,我似乎无法弄清楚如何将我的数据保存在快速服务器中,并将其返回到前端 javascript 文件中。我正在寻找的流程是这样的:
在节点中:
data = []:
res.render("dashboard", {data: data});
然后渲染 ejs 文件并将数据传递到前端 javascript 文件中,该文件在 ejs 文件中使用:
let data = <%= (data array passed from the node server here) %>
当然,这不是编写代码的正确方法,但这是我试图实现的基本逻辑。
我相信这很简单,但我似乎无法在我的上下文中找到答案。有什么资源可以让我学会做我想做的事吗?谢谢。
您不能同时使用 HTML 文档和单独的 JavaScript 文件来响应单个请求。
因此您需要:
- 将数据存储在某个地方,并在单独的端点中提供一些生成的 JavaScript 并有一种机制可以识别 在请求时提供哪些 数据制成。 (注意:这太复杂了。不要这样做。)
- 在 HTML 文档中的
<script>
元素内生成 JavaScript 内联。 (您需要将数据正确转义为 JS,以确保您不受 XSS 的影响)。
- 将数据输出到 HTML 文档中(例如带有
data-*
属性或 <meta>
元素)并使用静态 JavaScript. 读取它
- 同样,使用单独的端点:使用其中的数据提供 JSON 并使用静态 JS 文件中的 Ajax 读取数据。 (同样,您需要一种方法来确定为该特定请求发送哪些数据)。
我不确定这究竟是如何工作的,而且我无法通过搜索找到我的答案。我正在使用节点和快速服务器,并且一直在毫无问题地将数据传递到我的前端 ejs。现在,我正在尝试在我的前端中实现 charts.js,这要求数据位于前端 javascript 文件中。我知道要将数据传递到我的 ejs 文件,我使用这样的东西:
res.render("dashboard", {data: data});
为了显示 ejs 文件中的数据,我使用
<%= data %>
现在,我想做的基本上是同一件事,但我不想将数据传递到 ejs 文件,而是想将它传递到 javascript 文件,同时仍然显示 ejs文件。现在,我似乎无法弄清楚如何将我的数据保存在快速服务器中,并将其返回到前端 javascript 文件中。我正在寻找的流程是这样的:
在节点中:
data = []:
res.render("dashboard", {data: data});
然后渲染 ejs 文件并将数据传递到前端 javascript 文件中,该文件在 ejs 文件中使用:
let data = <%= (data array passed from the node server here) %>
当然,这不是编写代码的正确方法,但这是我试图实现的基本逻辑。
我相信这很简单,但我似乎无法在我的上下文中找到答案。有什么资源可以让我学会做我想做的事吗?谢谢。
您不能同时使用 HTML 文档和单独的 JavaScript 文件来响应单个请求。
因此您需要:
- 将数据存储在某个地方,并在单独的端点中提供一些生成的 JavaScript 并有一种机制可以识别 在请求时提供哪些 数据制成。 (注意:这太复杂了。不要这样做。)
- 在 HTML 文档中的
<script>
元素内生成 JavaScript 内联。 (您需要将数据正确转义为 JS,以确保您不受 XSS 的影响)。 - 将数据输出到 HTML 文档中(例如带有
data-*
属性或<meta>
元素)并使用静态 JavaScript. 读取它
- 同样,使用单独的端点:使用其中的数据提供 JSON 并使用静态 JS 文件中的 Ajax 读取数据。 (同样,您需要一种方法来确定为该特定请求发送哪些数据)。