我正在尝试完成以下任务(应该是非常基本的,我必须遗漏一些微不足道的东西):
- 使用具有 select 语句的字符串调用函数
- 等到数据库调用完成并返回行(或等效的 json)
- 填充 http 对象以返回
这是代码:
util.js
exports.execute = function( query){
if (connection) {
connection.query(query, function(err, rows, fields) {
if (err) throw err;
console.log("from Util - " + JSON.stringify(rows));
return JSON.stringify(rows);
});
}
};
repo.js
var q = "select * from xxx";
var response;
util.execute(q, function (err, r){
if (err){
throw err;
console.log(err);
}
else {
console.log(r);
res.contentType('application/json');
res.write(r);
res.end();
}
});
我的问题是,当调用 util.js 中的代码并且我可以在控制台中看到 json 时,它永远不会回到 repo.js 中的匿名回调函数。
我在这里做错了什么?
更新
谢谢本,我也在同一行找到了解决方案......这是新代码:
repo.js:
var send_data = function (req, res, r){
res.contentType('application/json');
res.write(r);
res.end();
}
exports.all = function(req, res){
var q = "select * from XXX";
var response;
util.execute(req, res,q, send_data);
};
util.js:
exports.execute = function(req, res, query, callback){
if (connection) {
connection.query(query, function(err, rows, fields) {
if (err) throw err;
callback(req, res, JSON.stringify(rows)) ;
});
}
};