Mysql 如何从未知对象属性中获取值?
我对从对象中提取值有问题。我想检查我的SQL表是否有询问行: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) {
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上的每个人都会喜欢您;)