2017-08-11 37 views
1

所以我的問題是非常具體的。每當我從我的頁面運行這個位,如果我不輸入我需要在API中搜索的正確標識,我會得到一個錯誤。由於查詢字符串不正確,它不知道該做什麼,因此無法進行有效的API調用。如何重定向到其他頁面?如果出現這樣的錯誤,或者如何阻止它停止該程序?我假設在這裏有一個嘗試抓住,但我嘗試了多種不同的方式,我仍然感到困惑,因爲它不工作。請幫助!我是這個新手...這裏是摘錄。如果「bnetID」不是有效的ID,則代碼的請求部分是發生錯誤的地方。如果它是有效的,它會運行得很好...如何爲我的特定API調用示例做一個try/catch?

// Make a GET request to the /results page (When submit is pressed) 
app.get("/results", function(req, res){ 

    // Retrieve bnetID and REGION from the FORM 
    var bnetID = req.query.bnetID; 
    var region = req.query.region; 

    // Replace the # with a - 
    bnetID = bnetID.replace("#", "-"); 

    // Create the query string 
    var url = "http://ow-api.herokuapp.com/profile/pc/"+ region +"/"+bnetID; 

    // Make the API request 
    request(url, function(err, response, body){ 
     if(err){ 
      console.log(err); 
     } else { 
      var playerData = JSON.parse(body); 
      playerData = findImportantData(bnetID, playerData); 
      checkIfExists(bnetID, playerData); 
      res.render("results", {data: playerData}); 
     } 
    }) 
}); 

回答

0

爲什麼你不處理你想要做的事情,如果有錯誤?

if(err){ 
     console.log(err); // change this to whatever you want to do 
    } 
+0

你是什麼意思? sry我不擅長這種東西,我正在學習......只要達到那個錯誤,程序就會取消,我不希望它做到這一點..每當它不起作用,它只是說rqeuest不能在mybrowser上代理 – Bryan

+0

正確 - 所以發生的是,當出現錯誤'(err)' - >''console.log()'它就是這樣。您可以在該區塊內放置任何您想要的內容,以便您可以根據需要重新路由到其他頁面。 –

+0

'if(err){window.location.href =「https://www.google.com」}'?真的沒關係,做任何你想做的事情。 –

相關問題