Vì vậy, tôi muốn tìm nạp một lượng lớn dữ liệu trên Parse, một giải pháp tốt mà tôi tìm thấy là tạo một hàm đệ quy: khi dữ liệu được tìm thấy thành công, khởi chạy một yêu cầu khác. Cách tôi làm điều đó khá đơn giản:Parse SDK JavaScript với Node.js 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);
}
});
};
Bây giờ, đây là điều tôi muốn gọi là "vấn đề": thường xuyên xảy ra, gọi lại "lỗi" được khởi chạy với điều này:
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)
(Với mã 107, dĩ nhiên) Vì vậy, tôi đã tìm kiếm trên Tài liệu Parse và nói chính xác điều này: "Đã nhận được lỗi với JSON không hợp lệ". Ừ.
Tôi đang sử dụng SDK Parse cung cấp bởi Parse.com (npm install parse
)
Tôi cũng đã cố gắng để thay đổi một chút mã Parse với thay thế phím host
bởi 'hostname' trên dòng 361 của tập tin parse/node_modules/xmlhttprequest/lib/XMLHttpRequest.js
(Phiên bản gói phân tích cú pháp: 1.5.0) và không hoạt động, vì vậy tôi đã xóa các thay đổi của mình.
(Bằng cách này, tôi tìm thấy một giải pháp nói về việc sử dụng ulimit
thay đổi hạn sử dụng bộ nhớ mà có thể giải quyết vấn đề, nhưng trên thực tế, tôi không có các quyền cần thiết để thực hiện lệnh này)
Giải pháp ulimit là gì? – smremde
Tôi tìm thấy nó [ở đây] (https://www.parse.com/questions/received-an-error-with-invalid-json-from-parse-error-connect-emfile), nhưng thực sự nó không phải là cùng một lỗi –