3

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。

4

1 回答 1

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)。

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

于 2014-05-10T10:38:29.523 回答