我有一个基于本地JSON文件提供数据的API。我有另一个名为scrapeData
的函数,计划在NodeJS中使用scheduledJob
每分钟运行一次。此函数基于抓取的数据在本地更新本地JSON文件。
抓取完成后,我想知道如何更新包含JSON的全局变量,以便向用户提供更新的JSON文件。
下面的代码是我想出来的,但似乎它不工作,当涉及到更新现有的变量
我正在使用NodeJS和express,并希望在运行时更新变量。
index.js
// Local data files
let boyGroupJSON = require("./asset/boy-group.json");
let girlGroupJSON = require("./asset/girl-group.json");
let idolJSON = require("./asset/idol.json");
// Schedule Job for fetching data
const scheduledJob = schedule.scheduleJob("0 * * * * *", () => {
scrapeData("boy-group");
scrapeData("girl-group");
scrapeData("idol");
// Below variables are not updated :(
boyGroupJSON = JSON.parse(fs.readFileSync("./asset/boy-group.json"));
girlGroupJSON = JSON.parse(fs.readFileSync("./asset/girl-group.json"));
idolJSON = JSON.parse(fs.readFileSync("./asset/idol.json"));
});
1条答案
按热度按时间bjg7j2ky1#
事实证明,当使用
require()
时,NodeJS正在缓存文件。使用JSON.parse(fs.readFileSync("PATH"));
代替。下面是固定代码: