2015-12-14 22 views
5

私はJavaスクリプトとノードjの新機能はありません MySQL DBから値を取得しようとしていますが、戻り値は[オブジェクトオブジェクト]です文字列の 私は実際には何の問題も解決されていませんでした。 ここに誰かが助けてくれることを願っています。 行の値は[オブジェクトオブジェクト]です。キーと値を持つオブジェクトがある場合には、ここでノードjs関数は、文字列値の代わりに[オブジェクトオブジェクト]を返します

は私の関数は

exports.getAllIdInfo= function(dbConnection, tables ,id , callback){ 
     var tableName= tables[i]; 
     var tableVariable = tableName; 
     var myQuery = 'SELECT time, ' + tableVariable + ' FROM ' + tableName + ' WHERE id= ' + id; 
     var query = dbConnection.query(myQuery, function (err, row, result) {  
      console.log(query.sql); 
      if (err) { 
       console.log("getAllGoodIds error"); 
       console.error(err); 
       return; 
      } 
      console.log("row is: " + row); 
      callback(row); 
     }); 
}; 
+0

場合、それはおそらく含むオブジェクトです:

(図示Node.jsの出力を持つ)次のコードは、受け入れ答え/コメントで作られたポイントを示していますあなたが実際に望むものでなければなりません:オブジェクトであれば、そのプロパティを呼び出すことによって値を取得することができますが、 row.idやrow.nameなど、テーブル内のどの列でも使用できます。 –

+1

あなたはどのライブラリを使用していますか? node-mysql? – madox2

+2

オブジェクトの構造を確認したい場合は、console.log(行)を(文字列を追加することなく)呼び出すか、文字列に変換してください(JSON.stringify(行)を使用できます) –

答えて

5

[オブジェクトのオブジェクト]で、ログに発生します。あなたは、ドット表記WTHでオブジェクトのプロパティにアクセスすることができます(。)例えば

objectName.propertyName 

properyNameが他の目的であるならば、それはまだ、[オブジェクトのオブジェクト]を返しますので、あなたはその内の別のプロパティを検索する必要があります。 プロパティにもメソッド(関数)を含めることができます。 あなたが例のためにそれらを比較するために、オブジェクトの文字列バージョンを取得したい場合はノードではconsole.log使用して、あなたが深くネストされたオブジェクトを持っている場合は、その後、

JSON.stringify(objectName); 

を使用すると、あなたがすることができないかもしれませんネストされたオブジェクトの内容を表示します。その場合は、次のものを使用できます。

console.log(util.inspect(objectName, false, null)); 

オブジェクトの全体を表示します。ファイルにはutilが必要ですが。

+2

これはNodeの['console.log()'](https://nodejs.org/api/console.html#console_console_log_data)には当てはまりません。単に '.toString()'を呼び出すのではなく、各引数に '' util.inspect() ''(https://nodejs.org/api/util.html#util_util_inspect_object_options)を追加してください。 FWIW、JSONをログに記録する場合は、 'console.log( '%j'、obj)' – robertklep

+0

を使用することもできます.Hmmm、JSONのことを知りませんでした。nice: –

+0

JSON.stringifyは比較的最近実装されていますとても人気があったからです。 JSON.parse(string)を使用してJSONからJSオブジェクトへの文字列を解析できます。これは、オブジェクトをlocalStorageで保存およびロードするのに適しています。 –

0

"watchman-make"(watchman-make:最初の回答のコメントをhttps://www.quora.com/What-IDEs-are-available-for-node-js-development-on-Linuxに表示)とともにnode.js端末で次のコードを実行すると、この問題も発生しました。戻り値でコールバック引数「行」を意味

function arrayToList(array) { 
    var list = {}; 
    for (var i = array.length - 1; i >= 0; i--) { 
    list = {value: array[i], rest: list}; 
    } 
    return list; 
}; 

console.log(arrayToList([1, 2, 3, 4, 5])); 
// { value: 1, 
// rest: { value: 2, rest: { value: 3, rest: [Object] } } } 

// '[Object]' ? 
// http://stackoverflow.com/questions/34264800/node-js-function-return-object-object-instead-of-a-string-value 

var obj = arrayToList([1, 2, 3, 4, 5]); 

console.log('%j', obj); 
// {"value":1,"rest":{"value":2,"rest":{"value":3,"rest":{"value":4,"rest":{"value":5,"rest":null}}}}} 

console.log(JSON.stringify(obj)); 
// {"value":1,"rest":{"value":2,"rest":{"value":3,"rest":{"value":4,"rest":{"value":5,"rest":null}}}}}