gpt4 book ai didi

node.js - 如何向模块添加回调

转载 作者:太空宇宙 更新时间:2023-11-04 00:16:09 24 4
gpt4 key购买 nike

我创建这个小模块以导入其他 Node 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);
});
};

最佳答案

当你要调用回调时,你必须检查它是否是一个函数。您可以通过以下检查来做到这一点

if (typeof(callback) === 'function') {
// call callback here
} else {
// just return because callback is not supplied
}

当您调用 exports.saveConnection 时,如果您想在该回调中执行某些操作,则必须提供回调作为第二个参数

关于node.js - 如何向模块添加回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46932806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com