如何从未知的对象属性获得价值?

我有一个从对象中提取值的问题。 我想检查我的SQL表是否有问题行:

var checkRow = function(connection,chekedColumn,chekParam, checkVal){ connection.query('SELECT EXISTS(SELECT '+ chekedColumn +' FROM asterisk.users where ' +chekParam+'='+checkVal+')', function (err, rows) { if(err) console.log('SQL suerry error') else { console.log(rows[0]); // output: { 'EXISTS(SELECT id FROM asterisk.users where name=1600)': 1 } return (rows[0]); }; }); }; 

但是从查询返回的值是一个对象,并且return(rows[0])只给出[object object]输出。 我怎样才能提取这个对象的价值?

您可以使用

 Object.keys(obj) 

获取对象的值。 有关更多信息,请参阅api参考 。

编辑:

只是为了更详细地阐述这一点…你怎么去得到它是这样的。

 // get the keys of the source var keys = Object.keys( source ); // loop through the keys for ( var i = 0; i < keys.length; i++ ) { var key = keys[i]; var value = source[key]; //do something with value } 

输出是一个你不知道的对象。 所以请尝试:

  1. console.log("Result: %j", rows[0]);
  2. console.log(JSON.stringify(rows[0]));
  3. console.log(require('util').inspect(rows[0], false, null));

查看结构。 知道密钥后,使用它来访问数据。

感谢所有的帮助和你的想法。 德米特里Matveev帮助我了解如何识别对象属性(Objekt.keys())。 并感谢user568109提醒asynchronousfunction,所以我使用callback。
最终代码:

 var checkRow = function(connection,chekedColumn,chekParam, checkVal,callback){ connection.query('SELECT EXISTS(SELECT '+ chekedColumn +' FROM asterisk.users where ' +chekParam+'='+checkVal+')', function (err, rows) { if(err) console.log('SQL suerry error') else { var keys=Object.keys(rows[0]); keys.forEach(function(key) { callback(rows[0][key]); }); }; }); }; 

而为了使用这个function,我们需要像这样调用它:

 checkRow(connection,'id','name',name,function(value){ console.log(value) })