问题描述
我希望有人可以帮助我解决遇到的问题。我有一个CRA应用程序,其中包含一个具有多个下拉列表的表。这些下拉菜单的值会经常更改,并且会根据我从API获得的数据进行填充。
问题在于此API的运行速度很慢,所以我的主要想法是仅使用cron在后端(节点/ express服务器)中每隔几个小时检查一次更改,请使用fs.writeFile将API响应写入到.JSON文件,然后在用户访问该应用程序时将该文件发送到前端。
在我的server.js
文件中,请执行以下操作:
var CronJob = require("cron").CronJob;
var job = new Cronjob(
"0 0 */2 * * *",function () {
apiFunction()
},null,true,"America/Los_Angeles"
);
job.start();
apiFunction()
脚本如下:
function apiFunction() {
axios
.get("https://www.myapi.com/path",{
params: {
// Some params
}
}).then( (response) => {
const resData = JSON.stringify(response.data);
fs.writeFile(__dirname + "/path/to/file",resData,"utf8",(error) => {
if (error) {
console.log(error);
return;
}
console.log("file created");
}
})
.catch (error) {
console.log(error)
}
}
在本地主机上开发时,这些脚本可以完美地工作。但是,当我将它们上载到服务器(公司内部网上的内部实例)时,其值永远不会改变。我可以看到该函数正在日志中被调用。
我怀疑我可能会误解该数据的持久性。我本以为可以避免使用数据库,因为我对它们的经验还不多。
任何帮助或澄清将不胜感激!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)