如何检查node.js上的脚本是否已完成

时间:2014-01-26 11:16:13

标签: javascript node.js command-line

我正在编写从mysql导入数据到mongodb我是node.js&的新手。 mongoDb和我的问题是如何检查是否所有插入以退出脚本?它使它成为了它的目标,但我不知道确定工作已经完成。

var c = require('./config').development;
var mysql = require('mysql');
var mySqlConnection = mysql.createConnection({
    host : c.mysqlHost,
    port : c.mysqlPort,
    database : c.mysqlDatabase,
    user : c.mysqlUser,
    password : c.mysqlPassword
});
var MongoClient = require('mongodb').MongoClient
, format = require('util').format;




var values = new Array("0", "100000", "200000", "300000", "400000");



MongoClient.connect('mongodb://127.0.0.1:27017/amazon', function(err, db) {

mySqlConnection.connect(function(err) {
            if (err !== null) {
                console.log(err);
            }

            values.forEach(function(limit) {
                        var sql = "SELECT id, ISO2, title, json_response FROM  amazon_product WHERE id>"+limit+" LIMIT 100000";
                        mySqlConnection.query(sql, function(err, rows) {
                            rows.forEach(function(row) {
                                try {

                                    db.collection('amazon' , function(err, col){
                                        var obj = JSON.parse(row.json_response);
                                        obj.iso2 = row.ISO2;
                                        obj.mysqlId = row.id;
                                        //How can I check that everything's is inserted?
                                        col.insert(obj, function(){});

                                    });


                                } catch (e) {
                                    console.log('problem @id ' + row.id +' ' + e);

                                }

                            });
                        });
                        console.log("I'm on limit"+ limit);
                    });

        });

});

1 个答案:

答案 0 :(得分:1)

让我们考虑以下几行: col.insert(obj, function(){});

当方法完成时,调用第二个参数函数(回调)。

后台:节点约定 - 任何回调函数都应该有第一个参数 - 错误对象。 insert函数也是如此

col.insert(obj, function(err){
     if (err) console.log('Error happend');
     else console.log('every thing is fine');
});