我正在编写一个攻击API的Firebase云功能,获取一些数据,并对其进行序列化后,它将数据上传到我的Firestore数据库中。这是使用Cron安排的,每天执行一次。我的功能正常,一切正常。但是我的http请求调用了两次成功函数。
我正在使用request来管理HTTP请求。我的代码如下:
return request({
uri: uri,
method: "GET",
qs: propertiesObject,
json: true
}, function (error, response, body) {
if (response.statusCode == 200) {
return serializeResponse(body, region, bracket, firebaseResponse)
} else {
console.log('error:', error); // Print the error if one occurred
console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
console.log('body:', body); // Print the HTML for the Google homepage.
return firebaseResponse.status(400).send("The petition to Battle.NET API has failed");
}
});
方法serializeResponse
只是序列化给定的数据并将其上传到Firestore,仅此而已。 FirebaseResponse
是从http请求到云函数的原始响应,该函数需要关闭以发送成功或错误代码以避免执行无限循环。
但是,问题是function
被两次调用了,我不知道为什么。在向代码中添加愚蠢的布尔控件或丑陋的代码之前,我希望寻求帮助。
答案 0 :(得分:0)
由于每次请求页面时浏览器默认为favicon.ico,请做出判断
var pathname = url.parse(request.url).pathname;
if(pathname != '/favicon.ico'){
}