Пн goose updateOne () перестает работать. Ошибки не выброшены - PullRequest
0 голосов
/ 06 января 2020

Здравствуйте, спасибо, что взглянули на это.

У меня есть запланированная функция, которая связывается с API и должна сохранять данные в локальной БД. Он работает несколько раз, а затем перестает сохранять. Я подтвердил, что функции выполняются в запланированное время. Пн goose не сохраняет данные и не выдает ошибку.

запрос на 2 части:

  • Мне бы очень хотелось, чтобы я попытался поймать и записать ошибку. -Может быть, мои логгеры находятся в неправильном месте?

  • Кроме того, если у вас есть какие-либо идеи о том, почему он работает, когда я запускаю сервер, а затем в конечном итоге перестает работать, что будет ценится также. -Может, я не «возвращаю» функции должным образом?

Получить данные из API:

function updateWeather(){
    const weatherurl = 'https://api.aerisapi.com/observations/pendleton,or?&format=json&filter=allstations&limit=1&client_id=bRZUxQc8j4z41CrH7SM6u&client_secret=GaEA7lMyLKnQwRsUcxv1mnNhTUkx6KUtVsrIXVcR';

axios.get(weatherurl)
    .then(response=>{

        // console.log(response.data);
          let condition     = response.data.response.ob.weather,
                temp        = response.data.response.ob.tempF,
                windDir     = response.data.response.ob.windDir,
                windSpd     = response.data.response.ob.windSpeedMPH,
                windGust    = response.data.response.ob.windGustMPH,
                windChill   = response.data.response.ob.windchillF,
                humidity    = response.data.response.ob.humidity,
                icon        = response.data.response.ob.icon,
                date        = moment().utcOffset(-8).format('YYYY-MM-DD'),
                updated     = moment().utcOffset(-8).format('MM/DD/YY HH:mm');

                if(temp <= 35){
                    var tempIcon = 'https://cdn.aerisapi.com/wxicons/v2/cold.png';
                }else if(temp >= 80){
                    var tempIcon =  'https://cdn.aerisapi.com/wxicons/v2/hot.png';
                }else{
                    var tempIcon = '';
                }

                currentWeather.push({date:date, condition:condition, temp:temp, windChill:windChill, windDir:windDir, windSpd:windSpd, windGust:windGust, humidity:humidity, icon:icon, tempIcon:tempIcon, updated:updated});

        return currentWeather[0]
    }).then(currentWeather=>{
        // console.log(currentWeather);
        saveWeather(currentWeather);
    }).catch(error=>{
        logger.error(error);
    });
    return currentWeather;
}

Сохранить данные в БД:

function saveWeather(weather){
    logger.info('saveWeather connection status: '+mongoose.connection.readyState);
    if(mongoose.connection.readyState !== 1){
        mongoose.connect("mongodb://localhost:27017/fdData", {useNewUrlParser: true});
    }
    Weather.updateOne({date: weather.date}, {date:weather.date, condition:weather.condition, temp:weather.temp, windChill:weather.windChill, windDir:weather.windDir, windSpd:weather.windSpd, windGust:weather.windGust, humidity:weather.humidity, icon:weather.icon, tempIcon:weather.tempIcon, updated:weather.updated}, {upsert:true}, error=> {

        if (error){
            logger.error(error);
        } else{
            logger.info('Weather Saved to DB')
        }
    })
    return weather;
}

Еще раз спасибо!

-Адам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...