所以我想在Parse上獲取大量的數據,我發現一個好的解決方案就是做一個遞歸函數:當數據成功找到時,啓動另一個請求。我在做它的方式很簡單:用Node.js解析SDK JavaScript ENOTFOUND
var containedLimit = 1000, // Also tried with 500, 300, and 100
parseUsersWaiting = {
// A lot of Users
},
parseUsers = {}, // Recipt for Users
getPlayers = function (containedIn) {
var count = 0;
if (containedIn == undefined) {
containedIn = [];
for (var i in parseUsersWaiting) {
count++;
if (count > containedLimit) {
break;
}
containedIn.push(parseUsersWaiting[i].id);
delete parseUsersWaiting[i];
}
}
var UserObject = Parse.Object.extend('User'),
UserQuery = new Parse.Query(UserObject);
UserQuery.limit(containedLimit);
UserQuery.containedIn('objectId', containedIn);
UserQuery.find({
success: function (results) {
if (results) {
for (var i in results) {
if (parseUsers[results[i].id] == undefined) {
parseUsers[results[i].id] = results[i];
}
// Other stuff
if (results.length < containedLimit) {
// End of process
} else {
getPlayers();
}
}
} else {
// Looks like an end of process too
}
}, error: function (error) {
console.log(error.message);
getPlayers(containedIn);
}
});
};
現在,這裏是我想叫什麼「問題」:這一點,很頻繁,是「錯誤」回調與此推出:
Received an error with invalid JSON from Parse: Error: getaddrinfo ENOTFOUND api.parse.com
at errnoException (dns.js:44:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:94:26)
(含代碼107,當然),所以我上搜索解析文檔,並說同樣的事情:「收到錯誤無效的JSON」。是啊。
我使用由Parse.com提供的解析SDK(npm install parse
)
我也試圖修改位以上的文件parse/node_modules/xmlhttprequest/lib/XMLHttpRequest.js
361線由「主機名」替換host
鍵的解析代碼(解析軟件包版本:1.5.0),它沒有工作,所以我刪除了我的更改。
(順便說一句,我找到了解決辦法談論使用ulimit
改變這一問題會得到解決內存使用限制,但實際上,我沒有必要的權限才能執行此命令)
ulimit解決方案是什麼? – smremde
我發現它[這裏](https://www.parse.com/questions/received-an-error-with-invalid-json-from-parse-error-connect-emfile),但實際上它不是一樣的錯誤 –