零星的控制台消息 - 请求失败,状态码为429

时间:2018-03-26 22:02:18

标签: node.js axios

我有这个错误或警告似乎偶尔在控制台中出现。在浏览器中,请求只会挂起一点,然后最终加载,或最终超时。其他时候页面将正常加载。

错误

getWeather: Error: Request failed with status code 429

为简洁起见,这是我的代码中似乎产生错误

的一部分
// get the weather from open weather map
let getWeather = new Promise(function(resolve, reject) {
    getCity.then( 
        apiData => {
            axios.all([
                axios.get(apiData.weatherUrl),
                axios.get(apiData.imageUrl)
            ])
            .then(axios.spread((weatherRes, imageRes) => {
                const weather = weatherRes.data;
                apiData.weatherForcast = `It's ${weather.main.temp} degrees Celcius in ${weather.name}`;
                const imageApiData = imageRes.data;
                apiData.largeImageURL = imageApiData.hits[0]['largeImageURL'];
                resolve(apiData);
            }))
            .catch(function (error) {
                console.error("getWeather: "+error)
            })
        }, 
        error => { 
            reject(error); 
            res.end("Could not query the get weather");
        } 
    )
});

错误代码与太多请求有关。造成这种情况的原因是什么?如何解决?也许你可以把它愚蠢一点,因为我对Node有点新意。谢谢。

1 个答案:

答案 0 :(得分:0)

我希望现在回答您的问题还为时不晚,但是在开发项目时遇到了同样的问题,因此也许对您来说仍然有用。

代码429转换为客户端错误:Too Many Requests

您尝试调用的API可能会限制您每小时执行x个请求,而您已经超出了该请求。检查您是否多次调用该API,如果是这种情况,则可以尝试仅调用一次并将所有需要的数据放入对象或其他类型的数据结构中,然后可以使用该数据而不是调用API。

希望这会有所帮助!