console.log输出如下,
{ [error: syntax error at or near "step"]
length: 86,
name: 'error',
severity: 'ERROR',
code: '42601',
detail: undefined,
hint: undefined,
position: '62',
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
file: 'scan.l',
line: '1001',
routine: 'scanner_yyerror' }
但JSON。Stringify看不到错误的叙述部分,
{"长度":86年,"名字":"错误","严重程度":"错误","代码":"42601","位置":"62","文件":"scan.l","线":"1001","常规":"scanner_yyerror"}
我不知道如何得到这个"错误:列"未定义"不存在"阅读维基(https://github.com/brianc/node-postgres/wiki/Error-handling, http://nodejs.ru/doc/v0.4.x/stdio.html#console.log)
代码是这样的,
client.query(selstring, function(err, result) {
if(err){
res.send(JSON.stringify(err));
console.log(err);
}else{
感谢UPDATE: err.toString()
显示error: syntax error at or near "step"
因为pg错误是标准Js error () obj的子类,因此基本错误"description"可以通过error .message…
console.log(new Error("hello world"));
[Error: hello world]
console.log(new Error("hello world").message);
hello world
你可以通过添加Error.prototype
来继承标准的Error对象。见凯文的帖子我如何在JavaScript中创建一个自定义错误?
我一直在努力理解同样的事情很长一段时间了。
查看JSON.stringify(err)
的输出,似乎对象有一个数组作为未命名的属性。如何创建具有匿名属性的对象呢?我曾经把这个搞砸了很长一段时间,但却找不到任何方法来构建任何可以从JSON.stringify
生成类似结构的对象。
我发现了错误。message实际上可以访问字符串,但我真的不明白为什么,因为'message'在字符串化版本中不作为属性出现。如果'message'是err的属性,为什么它不会出现在stringify的输出中?如果不是,那么它从何而来?
第一步放控制台像
console.log (query.text);
也可参考
链接http://dailyjs.com/2011/09/26/heroku/简单的修复方法是在连接中添加端口参数,即使它是默认端口。我也有同样的问题。我从这个github问题中找到了解决方案。
var pg_conn_conf = {
username: 'user',
pass: 'pass',
port: 5432,
host: 'localhost',
db: 'mydb'
};
还有另一个stackoverflow答案,建议扩展错误。原型,幸运的是你不需要处理这个问题。但这是一个很好的技巧。