是否可以将SQL语句与node-postgres返回的错误一起使用?

时间:2014-05-07 06:24:30

标签: node.js node-postgres

我从node-postgres(调用client.query方法时)收到的错误如下所示:

{ [Error: syntax error at or near "as"]
 severity: 'ERROR',
 code: '42601',
 position: '60',
 file: 'scan.l',
 line: '1044',
 routine: 'scanner_yyerror' } }

如果我能在错误消息旁边看到有问题的SQL,那么调试就会变得容易多了。有可能以某种方式得到它吗?

我意识到我可以手动实现它(包裹client.query等),但我感兴趣的是node-postgres本身是否可以强制提供SQL。

1 个答案:

答案 0 :(得分:3)

查看源代码(https://github.com/brianc/node-postgres/blob/master/lib/client.js#L331),query方法返回一个Query对象。所以你应该能够做到这样的事情:

var query = client.query('SELECT $1::int AS number', ['1'], function(err, result) {
  if (err) {
    var sql = query.text;
  }
}

(假设你的回调函数与query的范围相同)。

免责声明:我从未使用postgres或node-postgres。