javascript - 如何调用一次api并将数据发送到多个JS文件
问题描述
我正在创建一个查询数据库的网站。
我使用 nodejs express 创建了一个 API get 方法来从数据库中获取数据。
像这样的东西:
app.get('/getLatestData', (req, res) => {
var dataArray;
//some code here to get the array
res.send(dataArray);
});
所以如果我调用 getLatestData 我会得到一个包含我需要的数组,我们可以说是这样的:
dataArray = [humanName:abc,humanAge:25,humanWeight:.....等]
使用这个我正在创建一个网站,我可以在其中显示信息,例如他的体重随时间变化的图表或一些文本,例如他的姓名和年龄作为字符串。
HTML 文件:
<div class="container">
<div class="text" id="text2">
<script src="sketch.js"></script>
</div>
<div class="chart">
<canvas id="bar-chart" width="500" height="500">
<script src="bargraph.js"></script>
</canvas>
</div>
</div>
现在您可以在这种情况下看到我有 2 个 javascript 文件:bargraph.js 和 sketch.js,我遇到的问题是,在每个 javascript 文件中,我都在查询 API getLatestData,如下所示:
fetch('/getLatestDevice')
.then(res=>res.json())
.then(data => {
newWeight = data.eight
})
.catch(err => {
console.log('error')
});
我不想在所有这些不同的 JS 文件中不断调用此 API 获取,因为最新数据可能会更改,并且我可能正在访问它的不同实例,有没有一种方法可以调用 API 获取,一旦将其放入变量并传输到不同的文件,而不是在每个文件中单独执行?
解决方案
只需将 fetch 方法的结果分配给全局变量,如下所示:
window.latestDevice = undefined; // Global accessible variable
const request = fetch('/getLatestDevice').then((response) => {
return response.json();
}).then((data) => {
window.latestDevice = data;
});
然后你应该能够window.latestDevice
从你的 JS 文件中获取数据。
推荐阅读
- android - AWS Device Farm 获取可用设备列表
- sql - SQL Server 中的嵌套 while 循环未显示预期结果
- php - 我正在尝试将 MySQLi 代码转换为 PDO 代码,但没有成功
- java - 来自 Java SE 的 JMS 连接
- tsql - How to: Change actual execution method from "row" to "batch" - Azure SQL Server
- php - WordPress | 将内容从主编辑器批量移动到自定义字段
- c# - 有没有人有同样的问题?MVC 中的颜色选择器
- python - 程序在“plt.plot(timelist, speedlist, 'x')”处不断出错
- javascript - 在通过 localStorage 存储新查询之前,如何防止此 fetch API 搜索栏加载旧查询?
- c++ - 跨多个函数的函数调用者