如何将A回调添加回模块

时间:2017-10-25 12:44:21

标签: node.js node-modules

我创建这个小模块以导入其他节点js模块。 但是我的回调函数给了我一个错误。 "回调不是函数"。

如何让它发挥作用。

exports.saveConnection = function dao(action, callback){

    pool.getConnection(function(err,conn){
        if (err) {
            console.log(err);
            return callback(''); 
        }

        //create tables
        var createTables = function(conn){
            conn.release();
            var rl = readline.createInterface({
                input: fs.createReadStream('struct.sql'),
                terminal: false
            });
            rl.on('line', function(chunk){
                conn.query(chunk.toString('ascii'), function(err, sets, fields){
                    if(err){
                        console.log(err);
                    }else{
                        console.log("Table created");
                    }
                });
            });
            console.log("Table created");
        }

        var findByPrimaryKey = conn.query("select * from user",function(err,rows){
            conn.release();
            if(err) {
                console.log(err);
            }          
        });

        conn.on('error', function(err) {      
            console.log(err);
            return;    
        });
        callback(findByPrimaryKey);
    });
};

1 个答案:

答案 0 :(得分:1)

当你要打电话回叫时,你必须检查它是否是一个功能。你可以通过检查

来做到这一点
if (typeof(callback) === 'function') {
    // call callback here
} else {
   // just return because callback is not supplied
 }

当你打电话给exports.saveConnection时,如果你想在回调中做某事,你必须提供回调作为第二个参数