Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用节点mysql正确处理重复密钥_Javascript_Node.js_Error Handling_Node Mysql - Fatal编程技术网

Javascript 使用节点mysql正确处理重复密钥

Javascript 使用节点mysql正确处理重复密钥,javascript,node.js,error-handling,node-mysql,Javascript,Node.js,Error Handling,Node Mysql,我正在我的申请中填写注册表格,用户名和电子邮件必须是唯一的。 我运行了一个mysql数据库,并使用节点mysql(v2.0.0)作为驱动程序 当用户尝试使用在数据库中注册的allready名称时,mysql会引发以下错误:错误:ER\u DUP\u条目:重复条目'John'作为key'nickname',但在节点引发的错误对象中,mysql不包含有关错误的有用信息: console.log(JSON.stringify(err)); {“code”:“ER_DUP_ENTRY”,“errno”

我正在我的申请中填写注册表格,用户名和电子邮件必须是唯一的。 我运行了一个mysql数据库,并使用节点mysql(v2.0.0)作为驱动程序

当用户尝试使用在数据库中注册的allready名称时,mysql会引发以下错误:
错误:ER\u DUP\u条目:重复条目'John'作为key'nickname'
,但在节点引发的错误对象中,mysql不包含有关错误的有用信息:

console.log(JSON.stringify(err));
{“code”:“ER_DUP_ENTRY”,“errno”:1062,“sqlState”:“23000”,“index”:0}

我在哪里可以拿到相关的条目和钥匙?我需要知道密钥
昵称
或密钥
电子邮件
中的哪一个是重复密钥错误的原因,以便我可以警告用户


我知道我可以在执行
err.toString()
和解析结果(其中包含mysql错误字符串本身)时找到此信息,但我想知道是否有更好的方法来执行此操作。

您没有看到
消息
和其他错误属性的原因是其中一些“标准”属性未设置为可枚举,因此
JSON.stringify()
不会拾取它们

您可以向错误中添加一个
toJSON()
,该错误正确返回序列化所有属性。如果在传入的值上检测到该方法的存在,则该方法将由
JSON.stringify()
自动调用。例如:

var config = {
  configurable: true,
  value: function() {
    var alt = {};
    var storeKey = function(key) {
      alt[key] = this[key];
    };
    Object.getOwnPropertyNames(this).forEach(storeKey, this);
    return alt;
  }
};
Object.defineProperty(Error.prototype, 'toJSON', config);

您是否尝试了
console.log(错误消息)或只是
console.log(err)?@mscdex:哦,我不知道err.message!为什么它没有出现在
JSON.stringify(err)
for(key-in-err){…}
中?