2017-07-07 6 views
0

私は現在電子で作業していますが、うまくいくものはmysqlデータベースから取得する必要があります。値を返すJSは "undefined"を返します

しかし、関数間で値を送信する際に問題があります。私はJSと電子にちょっと新たなんだ、ので、多分私はちょうど何かを逃した:だから、基本的に私は「行」を返すようにしたいが、それはそれは未定義だと言う

function getUserData(user, data){ 

// connect 
var connection = connect(); 

// Perform a query 
$query = 'SELECT ' + data + ' FROM `users` WHERE user_id = ' + user; 

// Query ausführen 
connection.query($query, function(err, rows, fields) { 
    if(err){ 
     console.log("There was an error with executing the query."); 
     console.log(err); 
     return; 
    } 

    return rows; 
}); 

// End function 
return; 
} 

を。私は

console.log(rows); 

に確認した場合 は右

return rows; 

の上に、それはそれで

データを持っている私は何かが足りないのですか?

ありがとうございます!

+0

関数からundefinedを返します。また、私はそのapiに精通していないが、あなたはおそらくconnection.query(.....)を返すしたいと思います。最近、この関数はSQLインジェクション攻撃に対して脆弱です。 – terpinmd

答えて

0

実際にはreturn;で未定義に戻ります。

connection.query)が同期の場合は、return connection.query(/*smth*/)を実行してください。 非同期の場合、これを簡単に行うことはできません。引数として提供される関数では、グローバルに定義された変数の値を変更することもできます(または、Promise/"非同期処理"もしあればオブジェクト)。

関連する問題