2014-01-16 28 views
0

我想通過從MySQL查詢以上水平的結果......如何返回從查詢到mysql的node.js模塊中檢索結果?

我有這個模塊:mySQLconnect.js

var connection = require('mysql').createConnection({ 
    host : 'localhost', 
    user : 'admin', 
    password : '' 
}); 

exports.querySelect = querySelect; 

function querySelect(query){ 
    var result = connection.query(query, function(err, rows){ 
          return (rows[0]); 
       }); 
    return result; 
} 

,當我調用此函數從外面,讓我們從app.js說:

var DBconnector = require('mySQLconnect');  
var result = DBconnector.querySelectUser("SELECT * FROM TB_USERS"); 

但結果我得到的是別的東西 - 它是從mysql.js模塊的對象,一直收到:

connection.query(查詢,函數(ERR,行)

它已:_resultSet = NULL,和不可達_results = [陣列]

所以它沒有好...

我檢查了node-mysql網站,但沒有找到什麼是connection.query回報。

任何想法如何傳遞結果?

回答

1

您正在用程序功能封裝對數據庫的異步調用 - 這是來自程序語言(如PHP)的nodejs初學者的常見錯誤。

您可以簡化您的mySQLconnect.js模塊以下幾點:

var connection = require('mysql').createConnection({ 
    host : 'localhost', 
    user : 'admin', 
    password : '' 
}); 

exports.querySelect = connection.query; 

然後使用它正是如此:

var DBconnector = require('mySQLconnect'); 
DBconnector.querySelect("SELECT * FROM TB_USERS", function (err, rows) { 
    console.log(err || rows); 
}); 

我會在回調,匿名函數,並異步流模式,以幫助閱讀起來你圍繞着這種新的編碼風格。祝你好運!

+0

謝謝!它確實有效。 –