下面有更多详细信息,但问题是下面是一个有效的javascript对象,如何访问第一个数组类型的东西
{ [some-text-here-without-quotes] key1: 'text', key2: 1, key3: '23000', key4: 0 }
使用Nodejs,Express和MySQL构建应用程序。 我决定在这个链接上使用NPM中的'mysql'库:https://www.npmjs.com/package/mysql。
在测试时我故意创建了一个违反唯一约束的重复条目条件,因为我想查看返回的错误对象是什么样的。
当我从查询中调试console.log(错误)时,以下是打印内容:
{ [Error: ER_DUP_ENTRY: Duplicate entry 'abcdefg' for key 'token_UNIQUE'] code: 'ER_DUP_ENTRY', errno: 1062, sqlState: '23000', index: 0 }
我必须遗漏一些明显的东西。但我似乎无法访问第一个数组中的数据。对象的一部分以 [错误:开头并以'token_UNIQUE'结尾]
开头如何访问对象的该部分?
(首先,我认为这是一个格式不正确的对象字符串或来自mysql库的bug,但是underscore.js说它是一个对象
_.isObject(error); //true
答案 0 :(得分:1)
得到了完全相同的问题,我仍然不明白那个特定的语法意味着什么.. 但是,我设法通过强制将它转换为字符串来访问该对象的这一部分,只需将其连接到一个字符串中:
if (error) {
error.isError=1
errmsg=" "+error <---- cast to string here
error.msg=errmsg; <---- then back into the object as a tring
response.end(JSON.stringify(error));
db.end();
console.log("<-"+error)
return;
}
答案 1 :(得分:0)
你可以做到
Object.keys(err)
这将为您提供err
对象中包含的密钥列表。从那里,你可以选择你的intereste的钥匙。 (或)你可以使用,
console.dir(err)
以格式化方式打印对象。
答案 2 :(得分:-1)
error.toString()
error.message可能是一种正式的方式
以上两种方法都返回相同的输出