【发布时间】:2018-05-19 08:07:30
【问题描述】:
我有一个功能,我想用它来轮询从 gdax 交易所以太坊交易开始到当前的历史数据。我希望代码轮询 100 个结果(一次最多允许)将结果插入 mongodb,添加 100,然后重复,直到获得所有历史数据。但是,我所写的执行顺序不同。首先它将 for next 中的所有数字相加,然后执行所有 http authedclient 请求(尽管它正确使用了每个请求添加 100 的变量),然后将所有数据放入 mongodb。我遇到的问题是,当数据插入 mongodb 客户端时,连接已关闭。我怎样才能让它按照我想要的顺序执行每个操作? Pastebin 贴在下面。请注意,我使用的代码已发生重大变化以适应其他错误,将插入循环更改为 insertMany,但如果有人可以提供帮助,我可以正确集成建议。提前致谢。
https://pastebin.com/1BHi9RQV
var i = 100;
for (; i < 18750000; ) {
publicClient.getProductTrades({ after: i }, function (err, response, data) {
if (err) {
console.log(err);
return;
}
MongoClient.connect(url, function (err, db) {
if (err) {
console.log(err);
return;
}
var myobj = { data };
for (item in data) {
db.collection("EthTest").insertOne(data[item], function (err, res) {
if (err) {
console.log(err);
return;
}
});
console.log(data[item].trade_id);
}
db.close();
});
});
i = i + 100;
};
还下载了堆栈应用程序以正确发布链接和代码。移动网站不允许我这样做。对不起!
【问题讨论】:
-
请在问题本身中包含相关代码。有些人可能无法访问 Pastebin,或者链接可能会断开。在此处阅读有关提出好问题的更多信息:stackoverflow.com/help/how-to-ask
-
我试过了,我会在家里,在手机上编辑,我似乎无法访问代码工具栏,也无法按 Ctrl + k
标签: javascript node.js mongodb api gdax-api