Mysql 如何从未知对象属性中获取值?

Mysql 如何从未知对象属性中获取值?,mysql,sql,node.js,Mysql,Sql,Node.js,我对从对象中提取值有问题。我想检查我的SQL表是否有询问行: var checkRow = function(connection,chekedColumn,chekParam, checkVal){ connection.query('SELECT EXISTS(SELECT '+ chekedColumn +' FROM asterisk.users where ' +chekParam+'='+checkVal+')', function (err, rows) {

我对从对象中提取值有问题。我想检查我的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(行[0])
只给出[object]输出。如何提取此对象的值?

您可以使用

Object.keys(obj) 
获取对象的值。有关更多信息,请参阅

编辑:

只是想详细说明一下。。。你要怎么把它弄出来就是这个

// 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
}
//获取源代码的密钥
var keys=Object.keys(源);
//在钥匙上打圈
对于(变量i=0;i
您可以使用

Object.keys(obj) 
获取对象的值。有关更多信息,请参阅

编辑:

只是想详细说明一下。。。你要怎么把它弄出来就是这个

// 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
}
//获取源代码的密钥
var keys=Object.keys(源);
//在钥匙上打圈
对于(变量i=0;i
输出是一个您不知道的对象。因此,请尝试以下两种方法之一:

  • console.log(“结果:%j”,行[0])
  • console.log(JSON.stringify(行[0])
  • console.log(require('util').inspect(行[0],false,null))

  • 查看结构。知道键后,使用它访问数据。

    输出是一个您不知道的对象。因此,请尝试以下两种方法之一:

  • console.log(“结果:%j”,行[0])
  • console.log(JSON.stringify(行[0])
  • console.log(require('util').inspect(行[0],false,null))

  • 查看结构。知道这些键后,使用它访问数据。

    感谢所有人的帮助和您的想法。Dmitry Matveev帮助我理解如何识别对象属性(Objekt.keys())。感谢user568109对异步函数的提醒,所以我使用了回调
    最终代码:

    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]);
                         });
                        }; 
            }); 
    
    };
    
    为了使用这个函数,我们需要像这样调用它:

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

    谢谢大家的帮助和你的想法。Dmitry Matveev帮助我理解如何识别对象属性(Objekt.keys())。感谢user568109对异步函数的提醒,所以我使用了回调
    最终代码:

    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]);
                         });
                        }; 
            }); 
    
    };
    
    为了使用这个函数,我们需要像这样调用它:

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

    正如我所知,在带有点(.)关键字的javascript访问对象中,不要使用此行[0],如果我没有错行,请尝试此操作。0行。0不工作:语法错误:意外数字错误[0]可以,行。0不是,0不是有效的属性名。请参阅有效的属性名称,以便通过..进行访问。将索引从0更改为1可能是因为您获得了值,而无法从异步函数返回以获取值。您应该调用函数来处理查询内部返回的值。正如我所知,在带点(.)关键字的javascript access对象中,不要使用此行[0],如果我没有错误的行,请尝试此操作。0行。0不工作:语法错误:意外数字错误[0]可以,行。0不是,0不是有效的属性名称。请参阅有效的属性名称,以便通过..进行访问。将索引从0更改为1可能是因为您获得了值,而无法从异步函数返回以获取值。您应该调用函数来处理query.var keys=Object.keys(行[0])内部返回的值;var key=key[0];console.log(行[键]);//输出:undefinedconsole.log(键);//输出:存在(从asterisk.users中选择id,其中name=1600)console.log(行[0].key);//输出:UnfinedConsole.log(键);var keys=Object.keys(行[0]);var key=key[0];console.log(行[键]);//输出:undefinedconsole.log(键);//输出:存在(从asterisk.users中选择id,其中name=1600)console.log(行[0].key);//输出:UnfinedConsole.log(键);如果您开始将帮助您解决问题的答案标记为已接受,stackoverflow上的每个人都会喜欢您;)如果您开始将帮助您解决问题的答案标记为已接受,stackoverflow上的每个人都会喜欢您;)