也许我一直在盯着我的代码太长时间,或者我在其他地方或其他地方使用了太多的回调,但我无法弄清楚这个问题的后勤工作。我知道if (value instanceof Date) {
atributes.add(convertDateToString((java.util.Date) value));
}
中包含的值在回调函数中使用rows
是正确的。我只是不知道如何把它带回表面,可以这么说。从传递params的其他函数调用util.inspect(rows)
,并且期望得到结果。
任何见解都会非常有用。
将node.js与Express和mysql包一起使用,如果这有所不同。
dbHandler()
答案 0 :(得分:0)
尝试返回异步函数的结果是一种反模式,永远不会有效。
new_data = api_request_data(auth, request,
function(error, data){
return data;
});
store(new_data);
update_screen(new_data);
api_request_data(auth, request,
function(error, data){
store(data);
update_screen(data);
});
api_request_data(auth, request,
function(error, data){
if (error){
console.log(error);
return;
}
store(data);
update_screen(data);
});
在您的代码中,数据管道看起来没问题。
connection.query(params.query_string, function (err, rows) {
connection.release();
if(!err) {
res.json(rows); // <<--- I want to get ahold of the value of `rows`
//console.log(util.inspect(rows));
}
});
node.js应用程序中的代码res.json(rows);
将对包含rows
中的数据的JSON字符串进行排队,以便写入res
中引用的当前Web连接。
您的问题表明问题是此行不会将数据返回给dbHandler()
的调用者,但是没有经过培训的node.js开发人员会发生这种情况。代码看起来正确,可以将rows
中的数据传递到node.js应用程序的over-the-web客户端。