7

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 没有看到错误的叙述部分,

{"length":86,"name":"error","severity":"ERROR","code":"42601","position":"62","file":"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{

谢谢

更新:err.toString()显示error: syntax error at or near "step"

4

4 回答 4

5

因为 pg 错误是标准 Js Error() obj 的子类,因此可以通过 err.message 访问基本错误“描述”...

console.log(new Error("hello world"));
[Error: hello world]
console.log(new Error("hello world").message);
hello world

您可以通过附加 Error.prototype 为您自己的错误对象子类化标准错误对象

请参阅 Kevin 的帖子如何在 JavaScript 中创建自定义错误?

于 2015-05-18T05:50:36.100 回答
0

很长一段时间以来,我一直在努力理解同样的事情。

查看 的输出JSON.stringify(err),该对象似乎具有一个数组作为未命名属性。怎么可能创建一个具有匿名属性的对象?我曾经搞砸了很长一段时间,但找不到任何方法来构造任何可以从JSON.stringify.

我发现 err.message 实际上可以访问字符串,但我真的不明白为什么,因为“消息”在字符串化版本中没有作为属性出现。如果 'message' 是 err 的一个属性,为什么它不出现在 stringify 的输出中?如果不是,那么它来自哪里?

于 2014-04-18T23:31:16.353 回答
-1

简单的解决方法是将端口参数添加到您的连接中,即使它是默认端口。我有完全相同的问题。我从这个github issue中找到了解决方案。

var pg_conn_conf = {
  username: 'user',
  pass: 'pass',
  port: 5432,
  host: 'localhost',
  db: 'mydb'
};

还有另一个stackoverflow 答案建议扩展 Error.prototype,幸运的是,在这种情况下您不必处理它。但这是一个很好的技巧。

于 2014-07-29T20:44:22.973 回答
-1

第一步把控制台像

控制台.log(查询.文本);

另请参阅链接可能使用

http://dailyjs.com/2011/09/26/heroku/

于 2013-08-20T12:42:45.770 回答