Javascript 使用Node.JS获取对象检索/格式化MySQL

Javascript 使用Node.JS获取对象检索/格式化MySQL,javascript,mysql,node.js,callback,Javascript,Mysql,Node.js,Callback,我有两个文件:server.js和sqlHelper.js。服务器与web浏览器建立套接字连接并检索行号,然后将其转发给sqlHelper。相关代码片段如下: server.js //Setup websocket connection with browser var ws = require("nodejs-websocket") var server = ws.createServer(function (conn) { console.log("Connected") conn.on

我有两个文件:server.js和sqlHelper.js。服务器与web浏览器建立套接字连接并检索行号,然后将其转发给sqlHelper。相关代码片段如下:

server.js

//Setup websocket connection with browser
var ws = require("nodejs-websocket")
var server = ws.createServer(function (conn) {
 console.log("Connected")
 conn.on("text", function (str) {

    var select = require('./sqlHelper.js');
     select.query(str, returnVal);

   //this returns object Object
   function returnVal(res){
   console.log("Got it red:"+res);
    }
  conn.on("close", function (code, reason) {
    console.log("Connection terminated")
   })

}).listen(7001)
sqlHelper.js

exports.query = function(res, conn){
   var mysql = require('mysql');
   var connection = mysql.createConnection({

    host: 'localhost',
    user: 'root',
    password: '******',
    database: '*******'
    });
  connection.connect();
  connection.query('select red, green, blue, c1, c2 from table 
   where   ID    ='+res, function(err, result){
   if(err){
    console.error(err);
    return;
   }
     console.log(result);
     //return result;
  });
};

//this returns the correct information
exports.returnVal=function(res){
  console.log(res);
}
当我从SQLHelper.js中的方法写入控制台时,该值是正确的,但是当我在server.js中使用相同的方法时,我得到了object

我不确定我的方法是否正确。我相信答案涉及回调,但我不确定为什么我的数据在这两个js之间显示不同


提前谢谢

这是异步的,因此首先需要回调查询函数以返回结果。否则,您可能无法返回正确的结果。此外,结果将是一个数组,因此结果[0]。红色、结果[0]。绿色等将是访问列值的方式