回调未定义不是函数

时间:2014-09-21 19:18:54

标签: javascript node.js mongodb callback

我试图通过使用回调再次重用MongoDB连接,但是,当我尝试调用我的回调时,我收到的undefined不是函数。

任何人都可以指出我可能出错的方向吗

BroadbandData.prototype.connectToMongoDB = function(callback, obj){
    MongoClient.connect('mongodb://127.0.0.1:27017/UKBroadbandCoverageAndSpeed', function(err, db) {
        this.mongoDB = db;
        callback(db, obj);
    });
}


BroadbandData.prototype.storeMongoRecord = function(db, obj){
    console.log("Hello World")
}

/*
* persist
* @params Array (Object), String
* @returns null
*/
BroadbandData.prototype.persist = function(obj, source){
    if(source == 'mongodb'){

        this.connectToMongoDB(this.storeMongoRecord(), obj);

        /*var collection = db.collection('data');
        collection.insert(obj, function(err, docs) { 
            if(err) throw(err); 
            console.log("Inserted")
        });
*/  
    }else if(source == 'object'){
        this.broadbandDataJSON.push(obj);
    }

}

1 个答案:

答案 0 :(得分:2)

connectToMongoDB(this.storeMongoRecord(), ...

你只是调用函数,并将结果(undefined)传递给connectToMongoDB。 (就像任何其他函数调用一样)