使用Node.js中的Axios库进行API请求,并将请求结果缓存到本地的磁盘文件中。
示例代码如下:
const axios = require('axios');
const fs = require('fs');
const path = require('path');
const apiUrl = 'https://example.com/api/data';
// 尝试从本地缓存中获取数据
const cacheFilePath = path.join(__dirname, 'cache.json');
if (fs.existsSync(cacheFilePath)) {
const cache = JSON.parse(fs.readFileSync(cacheFilePath, 'utf8'));
const cacheAge = Date.now() - cache.timestamp;
if (cacheAge < 3600000) { // 如果缓存未过期,则直接返回缓存数据
console.log('Using cached data.');
return Promise.resolve(cache.data);
}
}
// 如果本地缓存不存在或已过期,则进行API请求
console.log('Making API request...');
axios.get(apiUrl)
.then(response => {
const data = response.data;
// 保存请求结果到本地缓存
fs.writeFileSync(cacheFilePath, JSON.stringify({
timestamp: Date.now(),
data: data
}));
return data;
})
.catch(error => {
console.log('API request failed:', error);
return Promise.reject(error);
});
以上代码将API请求结果缓存到本地磁盘的cache.json文件中,并在未过期时优先返回缓存数据。可以根据实际需求调整缓存时长和文件路径等参数。