我制作了一个API,该API可从另一个API加载数据,并将数据存储在sqlite数据库中。我的路由中有4个参数,之后我的应用程序检查该输入是否在数据库中,是否是从数据库返回的值,是否不是从主API返回的值。问题有时是,我不知道什么时候,我的数据库正在覆盖最后的输入。
异步索引({ 请求, 响应 }){
const date = request.input('date');
const hourInput = request.input('hour');
const lat = request.input('lat');
const lon = request.input('lon');
const weatherData = await Weather
.query()
.where('lat', '=', lat)
.where('long', '=', lon)
.where('hour', '=', hourInput)
.where('date', '=', date)
.fetch()
if (weatherData.rows[0]) {
console.log("exista")
response.json(weatherData.rows[0].temp_c)
} else {
try {
const history = await axios.get('http://api.apixu.com/v1/history.json?key=' + WEATHER_KEY + '&q=' + lat + ',' + lon + '&dt=' + date)
for (let i = 0; i <= 23; i++) {
const hour = history.data.forecast.forecastday[0].hour[i].time.slice(11, 13);
if (hourInput === hour) {
const temp = history.data.forecast.forecastday[0].hour[i].temp_c;
weather.lat = lat;
weather.long = lon;
weather.date = date;
weather.hour = hourInput;
weather.temp_c = temp;
await weather.save();
response.json(temp)
console.log("Nu")
}
//response.json(weatherData.rows);
}
} catch (err) {
console.log(err);
//response.status(500).json({})
}
}
}
有人可以解释一下为什么我的数据库被覆盖吗?