更新:
我试图将死亡计数存储在数组内的变量中,并用死亡计数递增数组。只有当新变量与数组中的最后一个变量不同时,才可以运行Wiki api调用。
现在我的问题是我不能用超过1个变量填充数组。有人知道下面的代码怎么了吗?:
在const数据之后,我添加了以下功能:
wiki()
.page("COVID-19_pandemic_in_Algeria")
.then((page) => page.fullInfo())
.then((info) => {
(data.confirmed.value = info.general.confirmedCases),
(data.recovered.value = info.general.recoveryCases),
(data.deaths.value = info.general.deaths);
});
const data = {
confirmed: { value: 0 },
deaths: { value: 0 },
recovered: { value: 0 },
};
app.get("/api", (req, res) => {
res.json(data);
});
它保持返回长度:即使多次调用wiki()函数,其返回长度也为1
我有一个带有express.js服务器的react应用。我在服务器上使用wikijs对Wikipedia进行API调用。一切正常,我从Wikipedia中获得了所需的数据!
我每天最多需要4次调用API,以更新某个国家/地区的Covid统计信息。现在,当react组件挂载时,有一个对Express服务器的调用,该服务器随后将对Wikipedia进行api调用。如果该应用程序被成百上千的用户使用,将触发不必要的呼叫。
如何避免多次通话?换句话说,我想以某种方式缓存前两个调用的结果。
这是我的Express.js。我将api调用的结果放入对象数据中:
const url = "/api";
export const fetchData = async () => {
}
try {
const {
data: { confirmed, deaths, recovered },
} = await axios.get(url)
return { confirmed, deaths, recovered };
} catch (error) {
return error;
}
};
这是我在React中调用express.js路由的地方:
async componentDidMount() {
const data = await fetchData();
this.setState({ data });
}
最后在App.js中,我调用了上面的fetchData函数:
{{1}}