如何不在AdoniJS中覆盖我的sqlite数据库?

时间:2019-06-28 15:15:43

标签: javascript sql node.js sqlite adonis.js

我制作了一个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({})
  }
}

}

有人可以解释一下为什么我的数据库被覆盖吗?

0 个答案:

没有答案