我想使用 NodeJS 从 MySQL 数据库中读取 60k 记录并将它们写入 ArangoDB 数据库。稍后我将使用 ArangoDB 的聚合功能等来处理我的数据集。
来自 PHP,其中脚本通常同步运行,并且因为我相信它在这里有意义,所以我最初的(天真的)尝试是让我的 NodeJS 脚本也运行同步。但是,它没有按预期工作:
我打印到控制台,调用一个函数.sync()
来连接到 ArangoDB 服务器并打印所有现有数据库,然后再次打印到控制台。但是对我的 ArangoDB 函数的同步调用下面的所有内容都被完全忽略(不会再次打印到控制台,也不会在这里执行任何其他操作)。
我在看什么?.done()
在通过调用的函数中是否.sync()
会引起麻烦?
var mysql = require('node-mysql');
var arango = require('arangojs');
//var sync = require('node-sync'); // Wrong one!
var sync = require('sync');
function test_arango_query() {
var db = arango.Connection("http://localhost:8529");
db.database.list().done(function(res) {
console.log("Databases: %j", res);
});
return "something?";
}
sync(function() {
console.log("sync?");
var result = test_arango_query.sync();
console.log("done."); // DOES NOT PRINT, NEVER EXECUTED?!
return result;
}, function(err, result) {
if (err) console.error(err);
console.log(result);
});