我创建这个小模块以导入其他节点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);
});
};
答案 0 :(得分:1)
当你要打电话回叫时,你必须检查它是否是一个功能。你可以通过检查
来做到这一点if (typeof(callback) === 'function') {
// call callback here
} else {
// just return because callback is not supplied
}
当你打电话给exports.saveConnection
时,如果你想在回调中做某事,你必须提供回调作为第二个参数