错误后调用API:getaddrinfo ENOTFOUND www.googleapis.com

时间:2017-03-06 15:19:24

标签: node.js api express video youtube

我正在使用MEAN构建Web应用程序,应用程序应检查给定URL的YouTube视频可用性

应用程序从数据库中获取视频ID,为每个ID调用YouTube API以检查视频是否存在,然后使用结果更新数据库

即时通过一些ID

随机获取此错误
  

{[错误:getaddrinfo ENOTFOUND www.googleapis.com   www.googleapis.com:443]代码:'ENOTFOUND',错误:'ENOTFOUND',
  系统调用:'getaddrinfo',主机名:'www.googleapis.com',主持人:   'www.googleapis.com',port:443}

我搜索了,我发现它在连接中发生了应有的错误。

但是,如果失败,我无法再次回想起YouTube API

这是我的代码

致电YouTube API

function (youtubeId,id){

  var searchParams = {
    part:             'id',
    id:                youtubeId
  }

  youtube.videos.list(searchParams, function(err, body) {
    if (err) {
      console.log(err)
      return
    }
    MongoClient.connect(config.databaseUrl, function (err, db) {
      if (err) {
        console.log('Unable to connect to the mongoDB server. Error:', err)
      } else {
        if (body.items.length) {
          db.collection(config.collectionName).update({_id:id},{$currentDate:{"lastChecked": true}, $set: {"lastResponse":1}},function (err, numUpdated) {
            if (err) {
              console.log(err)
            } else if (numUpdated) {
              console.log(youtubeId+ ' is available >> ID '+ id)
            } else {
              console.log('No document found with defined "find" criteria!')
            }
            //Close connection
            db.close()
          })
        }
          else {
            db.collection(config.collectionName).update({_id:id},{$currentDate:{"lastChecked": true}, $set: {"lastResponse":0}},function (err, numUpdated) {
              if (err) {
                console.log(err)
              } else if (numUpdated) {
                console.log(youtubeId+ ' is unavailable >> ID '+ id)
              } else {
                console.log('No document found with defined "find" criteria!')
              }
              //Close connection
              db.close()
            })
          }
      }
      })
    })

  }

获取视频ID

app.get('/run', function (req, res) {
  MongoClient.connect(config.databaseUrl, function (err, db) {
    if (err) {
      console.log('Unable to connect to the mongoDB server. Error:', err)
    } else {
      console.log('Connection established to', config.databaseUrl)
      var cursor = db.collection(config.collectionName).find()
      cursor.sort({"priority": 1, 'lastChecked': 1})
      cursor.skip(0)
      cursor.each(function (err, doc) {
        if (err) {
          console.log(err)
        } else {
          if(doc !== null){
            //check which video to check
            if (checkPriority(doc.lastChecked,doc.priority)) {
              youtubeChecker(doc.youtubeID,doc._id)
            }
            else {
              console.log("No Videos to check");
            }
          }
        }
      })
    } 
  }) 

})

0 个答案:

没有答案